Deno's --deny-read check does not prevent permission bypass
Key facts
- Attack vector
- Local
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Privilege escalation
- Confidentiality · integrity · availability
- Low · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-269.
Summary
Deno is a JavaScript, TypeScript, and WebAssembly runtime. In versions prior to 2.5.3 and 2.2.15, `Deno.FsFile.prototype.stat` and `Deno.FsFile.prototype.statSync` are not limited by the permission model check `--deny-read=./`. It's possible to retrieve stats from files that the user do not have explicit read access to (the script is executed with `--deny-read=./`). Similar APIs like `Deno.stat` and `Deno.statSync` require `allow-read` permission, however, when a file is opened, even with file-write only flags and deny-read permission, it's still possible to retrieve file stats, and thus bypass the permission model. Versions 2.5.3 and 2.2.15 fix the issue.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| denoland | deno | 2.3.0 to before 2.5.3; before 2.2.15 | 2.5.3, 2.2.15 | Patch available | CNA |
| — | deno (crates.io) | before 2.5.3 | 2.5.3 | Patch available | GHSA-qq26-84mh-26j9 |
- deno Vendordenoland Affected 2.3.0 to before 2.5.3; before 2.2.15 Fixed in 2.5.3, 2.2.15 Patch available CNA
- deno (crates.io) Vendor— Affected before 2.5.3 Fixed in 2.5.3 Patch available GHSA-qq26-84mh-26j9
Remediation
- Fix · CNA deno (denoland) Fixed in 2.5.3, 2.2.15
- Fix · GHSA-qq26-84mh-26j9 deno (crates.io) Fixed in 2.5.3 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2025-61786
- 2026-10-03 Alias added: GHSA-qq26-84mh-26j9
References
Patch 2
More denoland Deno vulnerabilities
- TI-2026-21627 Deno has a Command Injection via Incomplete shell metacharacter blocklist in node:child_process CVSS 3.1CRITICAL 9.8
- TI-2025-17782 Deno's AES GCM authentication tags are not verified CVSS 4.0HIGH 7.7
- TI-2024-18537 *const c_void / ExternalPointer unsoundness leading to use-after-free CVSS 3.1HIGH 8.8
- TI-2024-18536 Deno arbitrary file descriptor close via `op_node_ipc_pipe()` leading to permission prompt bypass CVSS 3.1HIGH 8.8
- TI-2023-12990 Deno is vulnerable to interactive `run` permission prompt spoofing via improper ANSI neutralization CVSS 3.1HIGH 8.8
- TI-2023-11328 Regular expression denial of service in deno CVSS 3.1HIGH 7.5
Sources
- CVE-2025-61786 · CVE Program
- CVE-2025-61786 · NVD
- FIRST EPSS
- GHSA-qq26-84mh-26j9 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences