Default-block the public-unicast cloud metadata endpoints (Azure WireServer, Equinix Metal) #245
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Split out of #217 by scope ruling. Not milestoned for 1.0.
168.63.129.16(Azure WireServer) and147.75.207.243(Equinix Metal) are cloud metadata endpoints that serve credentials, but unlike169.254.169.254they are public unicast — they fall in no private or reserved range, so the SSRF guard currently permits them.They were added to
alwaysBlockedNetworksduring the rework of #217 and have been removed again, for two reasons:alwaysBlockedNetworksis unrecoverable by design — no allowlist entry can restore it. That is correct for link-local metadata, which is never a legitimate delivery destination. It is not correct for public unicast addresses: an operator who genuinely needs to reach one has no escape hatch at all, which is the exact condition #204 exists to remove.ALLOWED_EGRESS_CIDRSis a provable no-op. That property is what makes the allowlist PR's blast radius zero for every existing deployment, and it is worth more than folding an unrelated blocklist change into the same commit.Definition of done:
blockedNetworks(the default blocklist), NOTalwaysBlockedNetworks, so the guard refuses them by default and an operator can deliberately allowlist them back.ALLOWED_EGRESS_CIDRSunset, and permitted when explicitly allowlisted.