ML-DSA Signature Verification Accepts Signatures with Repeated Hint Indices
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| RustCrypto | signatures | affected |
|
No data.
No data.
| Vendor | Product | Versions |
|---|---|---|
| Rustcrypto | Ml-dsa | — |
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-5x2r-hc65-25f9 | ML-DSA Signature Verification Accepts Signatures with Repeated Hint Indices |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.335% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Rustcrypto
Rustcrypto ml-dsa |
|
| Vendors & Products |
Rustcrypto
Rustcrypto ml-dsa |
| Type | Values Removed | Values Added |
|---|---|---|
| Description | The ML-DSA crate is a Rust implementation of the Module-Lattice-Based Digital Signature Standard (ML-DSA). Starting in version 0.0.4 and prior to version 0.1.0-rc.4, the ML-DSA signature verification implementation in the RustCrypto `ml-dsa` crate incorrectly accepts signatures with repeated (duplicate) hint indices. According to the ML-DSA specification (FIPS 204 / RFC 9881), hint indices within each polynomial must be **strictly increasing**. The current implementation uses a non-strict monotonic check (`<=` instead of `<`), allowing duplicate indices. This is a regression bug. The original implementation was correct, but a commit in version 0.0.4 inadvertently changed the strict `<` comparison to `<=`, introducing the vulnerability. Version 0.1.0-rc.4 fixes the issue. | |
| Title | ML-DSA Signature Verification Accepts Signatures with Repeated Hint Indices | |
| Weaknesses | CWE-347 | |
| References |
|
|
| Metrics |
cvssV3_1
|