WS-D11 Remove/wire the dead age attachment cipher (superseded by WS-B8 attachment persistence) #307

Open
opened 2026-07-31 18:14:40 +00:00 by KofTwentyTwo · 2 comments
KofTwentyTwo commented 2026-07-31 18:14:40 +00:00 (Migrated from github.com)

Size S. Coordinate WS-B8.

Roadmap-to-9/10 (design: scratchpad/design/). Serial PROTO queue via WS-A. Brief at dispatch. DoD per docs/STORY-WORKFLOW.md.

Size S. Coordinate WS-B8. Roadmap-to-9/10 (design: scratchpad/design/). Serial PROTO queue via WS-A. Brief at dispatch. DoD per docs/STORY-WORKFLOW.md.
KofTwentyTwo commented 2026-07-31 19:15:15 +00:00 (Migrated from github.com)

Delivered via PR #343 (WS-D10, squash-merged to dev). Webhook dispatch now resolves the host once, checks every candidate IP with is_blocked_webhook_target (#203), then pins the connection to the checked IP via reqwest .resolve(host, addr) (SNI/Host preserved -> cert validation unaffected) so reqwest cannot re-resolve — closing the DNS-rebind TOCTOU by construction. Test uses an unresolvable .invalid host reaching a wiremock loopback only via the override. Residual (trust in the single DNS answer; no multi-resolver/DNSSEC) documented as out-of-scope. Resolution+pinning now unconditional + malformed URL rejected up front (fail-closed improvements).

Delivered via PR #343 (WS-D10, squash-merged to dev). Webhook dispatch now resolves the host once, checks every candidate IP with is_blocked_webhook_target (#203), then pins the connection to the checked IP via reqwest .resolve(host, addr) (SNI/Host preserved -> cert validation unaffected) so reqwest cannot re-resolve — closing the DNS-rebind TOCTOU by construction. Test uses an unresolvable .invalid host reaching a wiremock loopback only via the override. Residual (trust in the single DNS answer; no multi-resolver/DNSSEC) documented as out-of-scope. Resolution+pinning now unconditional + malformed URL rejected up front (fail-closed improvements).
KofTwentyTwo commented 2026-07-31 19:15:53 +00:00 (Migrated from github.com)

Reopening — closed in error. PR #343 delivered WS-D10 (webhook IP-pin, issue #306), not this WS-D11 (remove dead age cipher), which is not started.

Reopening — closed in error. PR #343 delivered WS-D10 (webhook IP-pin, issue #306), not this WS-D11 (remove dead age cipher), which is not started.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/nuncio#307