RustSec logo

History ⋅ Edit ⋅ JSON (OSV)

RUSTSEC-2026-0428

BLAKE2b produces wrong tag when using reset() with a different-length key

Reported
Issued
Package
orion (crates.io)
Type
Vulnerability
Categories
Aliases
References
Patched
  • ^0.17.16
  • >=0.18.1
Affected Functions
Version
orion::hazardous::mac::blake2b::Blake2b::reset
  • <0.17.16
  • <0.18.1
  • >=0.12.0

Description

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.

Advisory available under CC0-1.0 license.