{"id":"RUSTSEC-2026-0208","aliases":[],"status":"published","title":"Potential Panic in AVX2 SHAKE-256","description":"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`.","severity":{"version":"4.0","score":8.2,"vector":"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","level":"high","from":"osv"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"published":"2026-05-21T12:00:00Z","modified":"2026-07-17T11:45:03Z","fixes":[{"ecosystem":"crates.io","package":"libcrux-sha3","fixed_in":["0.0.10"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"crates.io","package":"libcrux-sha3","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.0.10"}]}]}],"references":[{"url":"https://crates.io/crates/libcrux-sha3","tags":["package"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2026-0208.html","tags":["advisory"]},{"url":"https://github.com/celabshq/libcrux/pull/1456","tags":["web"]}],"sources":{"osv":[{"id":"RUSTSEC-2026-0208","title":"Potential Panic in AVX2 SHAKE-256","description":"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`.","status":"published","published":"2026-05-21T12:00:00Z","modified":"2026-07-17T11:45:03.744954039Z","cvss":[{"version":"4.0","score":8.2,"vector":"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","level":"high"}],"updated_at":"2026-11-02T15:53:40.430679Z"}]}}
