{"id":"CVE-2026-49860","title":"Deno: WebSocket API sandbox bypass via missing post-DNS check","summary":"Deno: WebSocket API sandbox bypass via missing post-DNS check","severity":"medium","cvss":5.2,"cwe":["CWE-918"],"vendor":"deno","product":"deno","ecosystem":"rust","affected":["deno <= 2.8.0"],"patched":["deno 2.8.1"],"published":"2026-06-16","updated":"2026-06-16","source":"GHSA","sourceUrl":"https://github.com/advisories/GHSA-83pc-3rw9-qpwj","references":[{"url":"https://github.com/denoland/deno/security/advisories/GHSA-83pc-3rw9-qpwj"},{"url":"https://github.com/advisories/GHSA-83pc-3rw9-qpwj"}],"tags":["ghsa","rust"],"epss":0.00141,"epssPercentile":0.0379,"ingestedAt":"2026-06-29T14:31:47.714Z","slug":"CVE-2026-49860","body":"## Overview\n\n## Summary\n\nWhen a WebSocket connection was opened, Deno checked the destination hostname\nagainst `--deny-net` rules but did not re-check the IP addresses that hostname\nresolved to. An attacker-controlled script could use a specially crafted domain\nname that passes the hostname check yet resolves to a denied IP, bypassing the\nnetwork restriction entirely.\n\n## Impact\n\nCode running under `--deny-net` could connect to hosts that the user intended\nto block. In practice this means network isolation rules — for example,\nblocking access to `localhost` or internal services — could be silently\ncircumvented by a malicious or compromised dependency.\n\n`Deno.connect` and `fetch()` were not affected by this specific issue (a\ncompanion advisory covers `fetch()`).\n\n## Who is affected\n\nUsers who:\n\n- run untrusted or third-party code with `deno run`, and\n- rely on `--deny-net` to restrict which hosts that code can reach.\n\nIf you do not use `--deny-net`, or if you only run fully trusted code, you are\nnot affected.\n\n## Workaround\n\nNo workaround is available short of upgrading. If upgrading immediately is not\npossible, avoid granting `--allow-net` to untrusted code that also has\n`--deny-net` restrictions you depend on for security.\n\n## Affected packages\n\n- `deno <= 2.8.0`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `deno 2.8.1`","depth":"sunlit","depthScore":29,"depthScoreParts":{"impact":28.6,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}