Description
Deno is a JavaScript, TypeScript, and WebAssembly runtime. Versions 1.46.0 through 2.1.6 have an issue that affects AES-256-GCM and AES-128-GCM in Deno in which the authentication tag is not being validated. This means tampered ciphertexts or incorrect keys might not be detected, which breaks the guarantees expected from AES-GCM. Older versions of Deno correctly threw errors in such cases, as does Node.js. Without authentication tag verification, AES-GCM degrades to essentially CTR mode, removing integrity protection. Authenticated data set with set_aad is also affected, as it is incorporated into the GCM hash (ghash) but this too is not validated, rendering AAD checks ineffective. Version 2.1.7 includes a patch that addresses this issue.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| denoland | deno | >= 1.46.0, < 2.1.7 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| crates.io | deno | >= 1.46.0, < 2.1.7 | 2.1.7 | GHSA-2x3r-hwv5-p32x |
| crates.io | deno_node | >= 0.102.0, < 0.125.0 | 0.125.0 | GHSA-2x3r-hwv5-p32x |