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.
CVSS breakdown
CVSS 3.1
Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None
Affected products
- denoland / deno>= 2.3.0, < 2.5.3 – >= 2.3.0, < 2.5.3
- denoland / deno< 2.2.15 – < 2.2.15
References
- VENDOR_ADVISORYhttps://github.com/denoland/deno/security/advisories/GHSA-qq26-84mh-26j9
- PATCHhttps://github.com/denoland/deno/pull/30876
- PATCHhttps://github.com/denoland/deno/commit/1ab2268c0bcbf9b0468e0e36963f77f8c31c73ec
- PATCHhttps://github.com/denoland/deno/releases/tag/v2.2.15
- PATCHhttps://github.com/denoland/deno/releases/tag/v2.5.3