CVE-2025-61786 Deno's --deny-read check does not prevent permission bypass
Attackers can bypass Deno's read permission restrictions to retrieve file statistics from protected files using specific API calls.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2025-61786?
CVE-2025-61786 is a low-severity vulnerability in denoland deno, published on 8 Oct 2025. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
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.
Weakness: CWE-269
Which versions are affected by CVE-2025-61786?
2 open source packages ship an affected version, including deno. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
deno crates.io | All versions | 2.5.3 |
deno crates.io | All versions | 2.5.3 |
Products include Deno Deno.
How do I fix CVE-2025-61786?
Upgrade deno to 2.5.3 or later.
Is CVE-2025-61786 being exploited?
There is no known exploitation of CVE-2025-61786 in the wild and no public exploit code.
Other vulnerabilities in denoland deno
- CVE-2023-28445 Deno improperly handles resizable ArrayBuffer
- CVE-2022-24783 Sandbox bypass leading to arbitrary code execution in Deno
- CVE-2021-32619 Static imports inside dynamically imported modules do not adhere to permission checks
- CVE-2026-22863 Deno node:crypto doesn't finalize cipher
- CVE-2024-27936 Deno interactive permission prompt spoofing via improper ANSI stripping
Sources
Also known as GHSA-qq26-84mh-26j9, JLSEC-2026-112.