{"id":"CVE-2026-49406","aliases":["GHSA-968w-xfqw-vp9q"],"url":"https://o3.security/vulnerability/CVE-2026-49406","summary":"Deno: BYONM module resolution allows `package.json` main path traversal to bypass `--allow-read` restrictions","details":"Deno is a JavaScript, TypeScript, and WebAssembly runtime. Prior to 2.7.12, when Deno was run in BYONM mode (nodeModulesDir: \"manual\"), the module resolver did not validate that a package's resolved entrypoint stayed within its node_modules/<pkg>/ directory. A malicious package.json whose main field contained .. segments was able to resolve to an arbitrary path on disk, and the resolver then read that file without consulting the --allow-read allowlist. This let a require(\"evil-pkg\") call return the contents of a file that a direct Deno.readTextFileSync(...) call would have been blocked from reading. This vulnerability is fixed in 2.7.12.","published":"2026-06-23T17:19:15.767Z","modified":"2026-08-12T03:51:32.109521364Z","cvss":{"score":5.5,"severity":"MEDIUM","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N"},"epss":{"score":0.00176,"percentile":0.07173,"asOf":"2026-09-02"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"crates.io","name":"deno","fixedVersion":"2.7.12"}],"fix":null,"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/49xxx/CVE-2026-49406.json"},{"type":"ADVISORY","url":"https://github.com/denoland/deno/security/advisories/GHSA-968w-xfqw-vp9q"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-49406"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-12T03:51:32.109521364Z"}}