{"id":"GHSA-xcc6-f2jq-43x6","aliases":["RUSTSEC-2026-0428"],"status":"published","title":"BLAKE2b produces wrong tag when using `reset()` with a different-length key","description":"## Summary\n\n`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. \n\n## Impact\n\nInitialization `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.\n\n## Resolution\n\nUpgrade to `v0.17.16` or `v0.18.1`.","facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"published":"2026-10-30T12:00:00Z","modified":"2026-10-30T11:15:02Z","fixes":[{"ecosystem":"crates.io","package":"orion","fixed_in":["0.17.16","0.18.1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"crates.io","package":"orion","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.17.16"},{"introduced":"0.18.0-0"},{"fixed":"0.18.1"}]}]}],"references":[{"url":"https://crates.io/crates/orion","tags":["package"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2026-0428.html","tags":["advisory"]},{"url":"https://github.com/orion-rs/orion/pull/690","tags":["web"]}],"sources":{"osv":[{"id":"RUSTSEC-2026-0428","title":"BLAKE2b produces wrong tag when using `reset()` with a different-length key","description":"## Summary\n\n`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. \n\n## Impact\n\nInitialization `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.\n\n## Resolution\n\nUpgrade to `v0.17.16` or `v0.18.1`.","status":"published","published":"2026-10-30T12:00:00Z","modified":"2026-10-30T11:15:02.170453141Z","updated_at":"2026-11-02T15:53:40.430679Z"}]}}
