The DNS check that passed and the connection that didn't care
mcp-from-openapi added an SSRF guard to protect internal services and cloud metadata. It resolved the hostname once to validate it, and then called fetch(), which re-resolved it at connection time. How a classic DNS TOCTOU slips into modern async JavaScript, why blocklist hardening can't fix it, and what it actually takes to pin a socket.