Skip to content

Commit 28c3c45

Browse files
Add advisory for libcrux-ml-dsa
1 parent 7ec62d6 commit 28c3c45

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
```toml
2+
[advisory]
3+
id = "RUSTSEC-0000-0000"
4+
package = "libcrux-ml-dsa"
5+
date = "2026-03-04"
6+
url = "https://github.com/cryspen/libcrux/pull/1347"
7+
8+
[affected.functions]
9+
"libcrux_ml_dsa::ml_dsa_44::verify" = [ "<= 0.0.7" ]
10+
"libcrux_ml_dsa::ml_dsa_65::verify" = [ "<= 0.0.7" ]
11+
"libcrux_ml_dsa::ml_dsa_87::verify" = [ "<= 0.0.7" ]
12+
13+
[versions]
14+
patched = [">= 0.0.8 "]
15+
```
16+
17+
# Incorrect Check of Signer Response Norm During Verification
18+
19+
The ML-DSA verification algorithm as specified in [FIPS 204,
20+
subsection
21+
6.3](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf#subsection.6.3)
22+
requires verifiers to check that the infinity norm of the deserialized
23+
signer response $z$ does not exceed $\gamma_1 - \beta$ (line 13 of
24+
Algorithm 8).
25+
The same check is required to be performed during signature generation.
26+
27+
libcrux-ml-dsa did not perform this check correctly during signature
28+
verification, accepting signatures with signer response norm above the
29+
allowed maximum value. The check is correctly performed during
30+
signing.
31+
32+
## Impact
33+
Applications using libcrux-ml-dsa for signature verification would
34+
have accepted signatures that would be rejected by a conforming
35+
implementation.
36+
37+
## Mitigation
38+
Starting from version `0.0.8`, signature verification uses the correct
39+
value for $\gamma_1$ in the signer response norm check.

0 commit comments

Comments
 (0)