Files
TREK/server/tests/unit/plugins
jubnl c26a8e06f8 fix(security): block IPv6 transition addresses (NAT64/6to4/Teredo) in SSRF guard
An attacker-controlled DNS record pointing at a NAT64 (64:ff9b::/96),
6to4 (2002::/16), or Teredo (2001:0000::/32) address that embeds a
private IPv4 (e.g. 64:ff9b::a9fe:a9fe = 169.254.169.254) bypassed the
SSRF guard: none of the guard functions recognised these ranges, so on a
host that routes the transition prefix the connection reached the
embedded private target (cloud metadata / internal SSRF).

Add a shared embeddedTransitionIpv4() detector and re-apply each guard's
own blocklist to the extracted IPv4 in isAlwaysBlocked, isPrivateNetwork,
isLinkLocal (ssrfGuard.ts) and isBlockedIp (egress-policy.ts). A
transition address to a public IPv4 stays allowed so legitimate
IPv6-only egress is unaffected.

egress-policy.ts keeps the detector inline to preserve its dependency-free
contract for the isolated plugin subprocess.
2026-07-18 17:16:47 +02:00
..
2026-07-11 19:02:34 +02:00
2026-07-11 19:02:34 +02:00
2026-07-11 19:02:34 +02:00
2026-07-06 00:27:42 +02:00
2026-07-13 12:40:00 +02:00
2026-07-11 19:02:34 +02:00
2026-07-13 12:40:00 +02:00
2026-07-11 19:02:34 +02:00
2026-07-05 01:13:04 +02:00
2026-07-11 19:02:34 +02:00
2026-07-11 19:02:34 +02:00
2026-07-11 19:02:34 +02:00
2026-07-11 19:02:34 +02:00
2026-07-11 19:02:34 +02:00
2026-07-11 19:02:34 +02:00
2026-07-11 19:02:34 +02:00
2026-07-11 19:02:34 +02:00
2026-07-11 19:02:34 +02:00
2026-07-11 19:02:34 +02:00
2026-07-11 19:02:34 +02:00
2026-07-05 01:13:04 +02:00
2026-07-11 19:02:34 +02:00
2026-07-13 12:40:00 +02:00
2026-07-05 01:13:04 +02:00
2026-07-05 01:13:04 +02:00
2026-07-11 19:02:34 +02:00
2026-07-11 19:02:34 +02:00
2026-07-05 01:13:04 +02:00