{"id":"GHSA-2cgv-28vr-rv6j","aliases":["RUSTSEC-2025-0133"],"status":"published","title":"libcrux incorrectly calculates on aarch64","description":"On platforms without the `core::arch::aarch64::vxarq_u64` intrinsic, an unverified fallback in `libcrux-intrinsics` v0.0.3\npassed incorrect arguments and produced wrong results. This corrupted SHA-3 digests and caused `libcrux-ml-kem` and\n`libcrux-ml-dsa` to sample incorrectly, yielding incorrect shared secrets and invalid signatures.\n\nThe issue has been fixed in v0.0.4.","severity":{"version":"4.0","score":8.8,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N","level":"high","from":"ghsa"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-200","CWE-327"],"published":"2025-12-04T12:00:00Z","modified":"2026-08-21T03:22:17Z","fixes":[{"ecosystem":"crates.io","package":"libcrux-intrinsics","fixed_in":["0.0.4"],"sources":["ghsa","osv"]},{"ecosystem":"crates.io","package":"libcrux-ml-kem","fixed_in":["0.0.4"],"sources":["ghsa","osv"]},{"ecosystem":"crates.io","package":"libcrux-ml-dsa","fixed_in":["0.0.4"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"libcrux-intrinsics","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.0.3"},{"last_affected":"0.0.3"},{"fixed":"0.0.4"}]}],"versions":["0.0.3"]},{"source":"ghsa","ecosystem":"crates.io","package":"libcrux-ml-kem","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.0.3"},{"last_affected":"0.0.3"},{"fixed":"0.0.4"}]}],"versions":["0.0.3"]},{"source":"ghsa","ecosystem":"crates.io","package":"libcrux-ml-dsa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.0.3"},{"last_affected":"0.0.3"},{"fixed":"0.0.4"}]}],"versions":["0.0.3"]},{"source":"osv","ecosystem":"crates.io","package":"libcrux-intrinsics","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.3"},{"fixed":"0.0.4"}]}],"versions":["0.0.3"]},{"source":"osv","ecosystem":"crates.io","package":"libcrux-ml-kem","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.3"},{"fixed":"0.0.4"}]}],"versions":["0.0.3"]},{"source":"osv","ecosystem":"crates.io","package":"libcrux-ml-dsa","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.3"},{"fixed":"0.0.4"}]}],"versions":["0.0.3"]},{"source":"osv","ecosystem":"crates.io","package":"libcrux-intrinsics","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.4-0"},{"fixed":"0.0.4"}]}]}],"references":[{"url":"https://github.com/cryspen/libcrux/issues/1220","tags":["web","report"]},{"url":"https://github.com/cryspen/libcrux/pull/1222","tags":["web"]},{"url":"https://github.com/cryspen/libcrux/commit/8d10f45631afd1d93fabb2278dbb388a075b5608","tags":["web"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2025-0133.html","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-2cgv-28vr-rv6j"},{"url":"https://github.com/cryspen/libcrux","tags":["package"]},{"url":"https://crates.io/crates/libcrux-intrinsics","tags":["package"]}],"sources":{"ghsa":[{"id":"GHSA-2cgv-28vr-rv6j","title":"libcrux incorrectly calculates on aarch64","description":"On platforms without the `core::arch::aarch64::vxarq_u64` intrinsic, an unverified fallback in `libcrux-intrinsics` v0.0.3\npassed incorrect arguments and produced wrong results. This corrupted SHA-3 digests and caused `libcrux-ml-kem` and\n`libcrux-ml-dsa` to sample incorrectly, yielding incorrect shared secrets and invalid signatures.\n\nThe issue has been fixed in v0.0.4.","status":"published","published":"2025-12-04T17:24:23Z","modified":"2026-08-21T03:22:17Z","cvss":[{"version":"4.0","score":8.8,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-200","CWE-327"],"updated_at":"2026-11-02T14:41:04.755504Z"}],"osv":[{"id":"GHSA-2cgv-28vr-rv6j","title":"libcrux incorrectly calculates on aarch64","description":"On platforms without the `core::arch::aarch64::vxarq_u64` intrinsic, an unverified fallback in `libcrux-intrinsics` v0.0.3\npassed incorrect arguments and produced wrong results. This corrupted SHA-3 digests and caused `libcrux-ml-kem` and\n`libcrux-ml-dsa` to sample incorrectly, yielding incorrect shared secrets and invalid signatures.\n\nThe issue has been fixed in v0.0.4.","status":"published","published":"2025-12-04T17:24:23Z","modified":"2026-02-22T23:20:55.220024Z","cvss":[{"version":"4.0","score":8.8,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-200","CWE-327"],"updated_at":"2026-11-02T15:46:34.338541Z"},{"id":"RUSTSEC-2025-0133","title":"Incorrect calculation on aarch64","description":"On platforms without the `core::arch::aarch64::vxarq_u64` intrinsic, an unverified fallback in `libcrux-intrinsics` v0.0.3\npassed incorrect arguments and produced wrong results. This corrupted SHA-3 digests and caused `libcrux-ml-kem` and\n`libcrux-ml-dsa` to sample incorrectly, yielding incorrect shared secrets and invalid signatures.\n\nThe issue has been fixed in v0.0.4.","status":"published","published":"2025-12-04T12:00:00Z","modified":"2025-12-06T07:57:51.529713Z","updated_at":"2026-11-02T15:53:40.430679Z"}]}}
