Files
ruflo/docs
rUvandClaude 9d854ddb9c dream(security): #4503 http_fetch SSRF bypass via IPv4-mapped IPv6 literals (evaluated, ACCEPT) (#4504)
* dream(security): http_fetch SSRF bypass via IPv4-mapped IPv6 literals

isPrivateOrLoopback() (the SSRF guard behind the http_fetch MCP tool's
validateUrl()) never stripped the "[...]" brackets Node's URL parser keeps
in `.hostname` for IPv6 literals. Two consequences:

1. The existing fc00::/7 (ULA) and fe80::/10 (link-local) checks
   (`host.startsWith('fc'/'fe80:')`) never matched anything, since `host`
   always started with "[" first.
2. There was no handling at all for IPv4-mapped IPv6 literals
   (`::ffff:a.b.c.d`, normalized by Node to a canonical `::ffff:xxxx:yyyy`
   hex form), so wrapping a loopback/private/link-local/cloud-metadata
   IPv4 address in that form bypassed the guard entirely
   (e.g. http://[::ffff:127.0.0.1]/, http://[::ffff:169.254.169.254]/).

Strips brackets once up front, then decodes IPv4-mapped-IPv6 forms back to
dotted-decimal and recurses into the existing IPv4 rules instead of adding
a parallel copy. 13 new tests (8 discriminating, verified to fail on the
pre-fix source via a stash-isolated run; 5 non-discriminating controls).

Independent adversarial critique: CONFIRMED-WITH-CAVEATS. Two pre-existing,
out-of-scope gaps disclosed in-source (IPv6 "::" unspecified address and
multicast/NAT64 ranges remain unblocked).

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_013bqQefaQjXhYZX2Acr9Jop

* dream(security): add 2026-10-26 research gist

Full SOTA report for tonight's security deep-dive (http_fetch SSRF
bypass via IPv4-mapped IPv6 literals) plus intelligence/swarm scan
findings and competitor comparison. No gist-publishing tool reachable
this session (same disclosed FALLBACK as every night since 2026-09-30)
— committed to this branch instead.

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_013bqQefaQjXhYZX2Acr9Jop

* dream(security): update ledger for 2026-10-26

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_013bqQefaQjXhYZX2Acr9Jop

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-26 09:58:56 -04:00
..