Description
Deno is a JavaScript, TypeScript, and WebAssembly runtime. Prior to versions 2.1.13 and 2.2.13, the `Deno.env.toObject` method ignores any variables listed in the `--deny-env` option of the `deno run` command. When looking at the documentation of the `--deny-env` option this might lead to a false impression that variables listed in the option are impossible to read. Software relying on the combination of both flags to allow access to most environment variables except a few sensitive ones will be vulnerable to malicious code trying to steal secrets using the `Deno.env.toObject()` method. Versions 2.1.13 and 2.2.13 contains a patch.
CVSS breakdown
CVSS 4.0
Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Confidentiality (Vulnerable System)
Low
Integrity (Vulnerable System)
Low
Availability (Vulnerable System)
None
Confidentiality (Subsequent System)
None
Integrity (Subsequent System)
None
Availability (Subsequent System)
None
E
Physical
Affected products
- denoland / deno< 2.1.13 – < 2.1.13
- denoland / deno>= 2.2.0, < 2.2.13 – >= 2.2.0, < 2.2.13
References
- VENDOR_ADVISORYhttps://github.com/denoland/deno/security/advisories/GHSA-7w8p-chxq-2789
- PATCHhttps://github.com/denoland/deno/pull/29079
- PATCHhttps://github.com/denoland/deno/commit/2959e083912420988066a001c2b2d6732a1b562f
- PATCHhttps://github.com/denoland/deno/commit/946ccda1aa19a00c478a5e6826b75053b050d753
- MISChttps://docs.deno.com/api/deno/~/Deno.Env.toObject
- MISChttps://docs.deno.com/runtime/fundamentals/security/#environment-variables