RUSTSEC-2026-0238
Low-level GCM ignores the operation nonce
Details
In all published versions of `dcrypt-algorithms` before 2.0.0, the low-level `Gcm` builder required an operation nonce but derived `J0` from the nonce captured by the original `Gcm` constructor. Multiple operations could therefore silently reuse a nonce even when callers supplied distinct values, compromising confidentiality and authenticity under an affected key.
Version 2.0.0 makes `Gcm` key-only and passes the operation nonce through IV derivation, encryption, and decryption. It also corrects non-96-bit IV processing, rejects tags shorter than 96 bits, and enforces counter limits. Applications must upgrade, identify affected keys, rotate them, and re-encrypt affected data; updating the implementation cannot restore security after nonce reuse.
Are you affected?
Enter the version of the package you're using.
Affected packages
0.0.0-0 Fixed in: 2.0.0 Upgrade dcrypt-algorithms to 2.0.0 or newer (ecosystem crates.io).
References
- https://crates.io/crates/dcrypt-algorithms [PACKAGE]
- https://rustsec.org/advisories/RUSTSEC-2026-0238.html [ADVISORY]
- https://github.com/ioi-foundation/dcrypt/security/advisories/GHSA-h9f2-fgp8-vc4h [ADVISORY]
- https://github.com/ioi-foundation/dcrypt/commit/c99cc86f0ee353010cd202cbcd2c310371b0bbb8 [WEB]
- https://github.com/ioi-foundation/dcrypt/releases/tag/v2.0.0 [WEB]