Skip to content
OpenAdvisories
Unscored RUSTSEC-2026-0208

Potential Panic in AVX2 SHAKE-256

Published May 21, 2026 · Updated Jul 17, 2026 · Assigned by RUSTSEC

Description

The AVX2-optimized implementation of SHAKE-256 intended for use in
ML-KEM and ML-DSA would panic if the length of the output buffers was
greater than 32 and not a multiple of 8, due to an out-of-bounds
indexing operation.

## Impact
This bug impacts users on AVX2 platforms that use the
`libcrux_sha3::avx2::x4::shake256` API outside of ML-KEM or ML-DSA
with output buffers of length `> 32` and not divisible by `8`. It does
not impact the use in ML-KEM or ML-DSA because there output buffer
lengths are always divisible by `8`.

## Mitigation
Starting from version `0.0.10`, the AVX2-optimized SHAKE-256 will no
longer panic on output buffer lengths `> 32` that are not divisible by
`8`.

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io libcrux-sha3 >= 0.0.0-0, < 0.0.10 0.0.10 RUSTSEC-2026-0208

References