CVE-2026-49401: Deno permission bypass via Unicode normalization mismatch on macOS

CVE-2026-49401 · Severity: high · CVSS 7.3 · Published 2026-06-23

Deno is a software runtime used to execute JavaScript and TypeScript applications. A security flaw on macOS allowed programs to bypass restricted file and execution permissions by using alternative Unicode spellings or different letter casing for file paths. This could allow a malicious script to read, write, or execute sensitive files that were explicitly supposed to be blocked by the system's security rules.

Technologies: deno (crates.io). Vendors: crates.io.

Quick answers

Is CVE-2026-49401 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-49401 being exploited in the wild.
How severe is CVE-2026-49401?
High severity, with a CVSS score of 7.3, published 23 June 2026.
Which products and versions are affected?
deno (crates.io) <= 2.7.13, SEMVER:introduced=0,fixed=2.7.14.
Is there a fix for CVE-2026-49401?
Yes. deno (crates.io): upgrade to 2.7.14 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-49401 attacked?
It is attacked with local access, in a software library.
Am I affected by CVE-2026-49401?
Check whether you run deno (crates.io) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • deno (crates.io): upgrade to 2.7.14 or later
    cargo update -p deno

Technical details

A path equivalence vulnerability exists in Deno's permission system on macOS (APFS). The runtime performed raw-byte comparisons for filesystem and execution restrictions (e.g., --deny-read, --deny-run) while the underlying APFS filesystem treats different Unicode normalizations (NFC vs NFD) and case variations as the same file. An attacker with local execution privileges can bypass these 'deny' rules by requesting a path that is byte-different but functionally equivalent to a restricted path (e.g., using ligatures, accented characters, or different casing). This issue is specific to macOS and has been resolved in version 2.7.14 by implementing NFC normalization and Unicode case folding during path comparison.

Affected products

  • denoland Deno < 2.7.14

Identifiers

  • CVE-2026-49401
  • GHSA-8xpq-cjcf-3wh9

Timeline

  • 2026-05-27: advisory: GitHub Security Advisory published
  • 2026-06-23: disclosed: NVD publication date

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.