{"id":"RUSTSEC-2026-0208","summary":"Potential Panic in AVX2 SHAKE-256","details":"The AVX2-optimized implementation of SHAKE-256 intended for use in\nML-KEM and ML-DSA would panic if the length of the output buffers was\ngreater than 32 and not a multiple of 8, due to an out-of-bounds\nindexing operation.\n\n## Impact\nThis bug impacts users on AVX2 platforms that use the\n`libcrux_sha3::avx2::x4::shake256` API outside of ML-KEM or ML-DSA\nwith output buffers of length `\u003e 32` and not divisible by `8`. It does\nnot impact the use in ML-KEM or ML-DSA because there output buffer\nlengths are always divisible by `8`.\n\n## Mitigation\nStarting from version `0.0.10`, the AVX2-optimized SHAKE-256 will no\nlonger panic on output buffer lengths `\u003e 32` that are not divisible by\n`8`.","modified":"2026-07-17T11:45:03.744954039Z","published":"2026-05-21T12:00:00Z","database_specific":{"license":"CC0-1.0"},"references":[{"type":"PACKAGE","url":"https://crates.io/crates/libcrux-sha3"},{"type":"ADVISORY","url":"https://rustsec.org/advisories/RUSTSEC-2026-0208.html"},{"type":"WEB","url":"https://github.com/celabshq/libcrux/pull/1456"}],"affected":[{"package":{"name":"libcrux-sha3","ecosystem":"crates.io","purl":"pkg:cargo/libcrux-sha3"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.0.10"}]}],"ecosystem_specific":{"affected_functions":null,"affects":{"functions":["libcrux_sha3::avx2::x4::shake256"],"arch":[],"os":[]}},"database_specific":{"cvss":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","informational":null,"source":"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0208.json","categories":[]}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"}]}