Vulnerability RUSTSEC-2026-0428
Summary
BLAKE2b produces wrong tag when using `reset()` with a different-length key
Details
Summary
hazardous::mac::blake2b::Blake2b::reset() does not correctly reset the state when a key is supplied that has a different length than the one used upon initialization with hazardous::mac::blake2b::Blake2b::new(), because it errorneously uses a cached length.
Impact
Initialization hazardous::mac::blake2b::Blake2b with a key of some length N, followed by a reset with a key of length != N will produce an incorrect BLAKE2b tag, causing hazardous::mac::blake2b::Blake2b::verify() to fail. This means under honest protocol conditions, parties could experience failing tag verifications.
Resolution
Upgrade to v0.17.16 or v0.18.1.
Related Vulnerabilities
Other vulnerabilities affecting the same packages