When a WebSocket connection was opened, Deno checked the destination hostname
against --deny-net rules but did not re-check the IP addresses that hostname
resolved to. An attacker-controlled script could use a specially crafted domain
name that passes the hostname check yet resolves to a denied IP, bypassing the
network restriction entirely.
Code running under --deny-net could connect to hosts that the user intended
to block. In practice this means network isolation rules — for example,
blocking access to localhost or internal services — could be silently
circumvented by a malicious or compromised dependency.
Deno.connect and fetch() were not affected by this specific issue (a
companion advisory covers fetch()).
Users who:
deno run, and--deny-net to restrict which hosts that code can reach.If you do not use --deny-net, or if you only run fully trusted code, you are
not affected.
No workaround is available short of upgrading. If upgrading immediately is not
possible, avoid granting --allow-net to untrusted code that also has
--deny-net restrictions you depend on for security.
{
"license": "CC-BY-4.0",
"sources": [
{
"html_url": "https://nvd.nist.gov/vuln/detail/CVE-2026-49860",
"imported": "2026-08-05T06:30:31.282Z",
"database_specific": {
"status": "Analyzed"
},
"modified": "2026-06-29T14:37:08.490Z",
"id": "CVE-2026-49860",
"published": "2026-06-23T18:18:04.053Z",
"url": "https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2026-49860"
},
{
"html_url": "https://github.com/advisories/GHSA-83pc-3rw9-qpwj",
"imported": "2026-08-05T06:30:32.446Z",
"id": "GHSA-83pc-3rw9-qpwj",
"modified": "2026-07-20T21:01:05Z",
"published": "2026-06-16T19:04:07Z",
"url": "https://api.github.com/advisories/GHSA-83pc-3rw9-qpwj"
},
{
"id": "EUVD-2026-38542",
"imported": "2026-08-05T06:30:31.318Z",
"html_url": "https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-38542",
"modified": "2026-06-23T17:37:07Z",
"published": "2026-06-23T17:15:05Z",
"url": "https://euvdservices.enisa.europa.eu/api/enisaid?id=EUVD-2026-38542"
}
]
}