GHSA-fhvh-vw7h-9xf3 json
libcrux-ml-dsa: Signature Verification on AVX2 Platforms Mishandles Edge Case
published 6mo ago modified 5mo ago also RUSTSEC-2026-0125
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- —
- no score, EPSS covers CVEs only
- public exploits
- 0
- none known
Summary
The AVX2 implementation of ML-DSA verification incorrectly implemented the `use_hint` function, mishandling an edge case that should lead to signature rejection.
## Impact An attacker could make the ML-DSA verifier accept a crafted invalid signature under a maliciously generated verification key, if the AVX2 implementation is used.
## Mitigation From version `0.0.9` the edge case is handled correctly and invalid signatures are rejected.
Patch / fix
- crates.io libcrux-ml-dsa 0.0.9
- github.com/C2SP/wycheproof#234 pull request
- github.com/cryspen/libcrux#1398 pull request
- github.com/tink-crypto/tink-go#48 pull request
Is GHSA-fhvh-vw7h-9xf3 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerAffected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| crates.io | libcrux-ml-dsa | <0.0.9 >=0.0.0-0, <0.0.9 |
0.0.9 |
Classification
- Weakness
-
- CWE-347 Improper Verification of Cryptographic Signature
References
Sources
- GitHub Advisory GHSA-fhvh-vw7h-9xf3
- OSV RUSTSEC-2026-0125
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.