Advisory Database
  • Advisories
  • Dependency Scanning
  1. cargo
  2. ›
  3. deno
  4. ›
  5. CVE-2026-49401

CVE-2026-49401: Deno: Permission Bypass via Unicode Normalization Mismatch on macOS (APFS)

June 16, 2026 (updated July 31, 2026)

Deno’s permission system enforces filesystem and execution restrictions by comparing the requested path against the path supplied to --deny-read, --deny-write, --deny-run, or --deny-ffi. On macOS, that comparison was done at the raw-byte level while the APFS filesystem treats different Unicode spellings of the same name as the same file.

That means a program could reach a denied path by spelling it differently than the deny rule. For example, with --deny-read=/secrets/passwörter.txt, a script could still read the file by opening /secrets/passwo\u0308rter.txt (NFD instead of NFC), or /SECRETS/PASSWÖRTER.txt (different case, since default APFS volumes are case-insensitive). Other forms include ligature characters (fi vs fi, ff vs ff, …) and German ß vs ss.

The denied path and the requested path differed at the byte level, so Deno’s permission check passed; the kernel then resolved them to the same inode and served the file anyway. The same flaw affected --deny-write, --deny-run, and --deny-ffi, which share the same path-comparison code.

References

  • github.com/advisories/GHSA-8xpq-cjcf-3wh9
  • github.com/denoland/deno/security/advisories/GHSA-8xpq-cjcf-3wh9
  • nvd.nist.gov/vuln/detail/CVE-2026-49401

Code Behaviors & Features

Detect and mitigate CVE-2026-49401 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 2.7.14

Fixed versions

  • 2.7.14

Solution

Upgrade to version 2.7.14 or above.

Impact 7.3 HIGH

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:N

Learn more about CVSS

Weakness

  • CWE-176: Improper Handling of Unicode Encoding
  • CWE-41: Improper Resolution of Path Equivalence

Source file

cargo/deno/CVE-2026-49401.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sat, 08 Aug 2026 00:18:14 +0000.