Register a fake Node with a DNS rebinding hostname that initially resolves to a valid public IP
API server checks isProxyableHost before connecting.
At check time, DNS resolves to the allowed IP
By connect time, DNS flips to 127.0.0.1 or 169.254.x.x.
The blocklist check is not re-run (TOCTOU)
SSRF reaches loopback services such as kube-proxy :10249 configz, etcd :2379, and control-plane localhost ports
Rights needed:
· both; registering the address and proxying to it
Note:
This is a wontFix.
Fixing requires IP pinning between check and connect, which breaks split-horizon DNS.
Mitigation is dnsmasq min-cache-ttl.
