CVE-2026-22705
MEDIUM6.4EPSS 0.02%Timing side-channel in ML-DSA decomposition
Description
### Summary A timing side-channel was discovered in the Decompose algorithm which is used during ML-DSA signing to generate hints for the signature. ### Details The analysis was performed using a constant-time analyzer that examines compiled assembly code for instructions with data-dependent timing behavior. The analyzer flags: - **UDIV/SDIV instructions**: Hardware division instructions have early termination optimizations where execution time depends on operand values. The `decompose` function used a hardware division instruction to compute `r1.0 / TwoGamma2::U32`. This function is called during signing through `high_bits()` and `low_bits()`, which process values derived from secret key components: - `(&w - &cs2).low_bits()` where `cs2` is derived from secret key component `s2` - `Hint::new()` calls `high_bits()` on values derived from secret key component `t0` **Original Code**: ```rust fn decompose<TwoGamma2: Unsigned>(self) -> (Elem, Elem) { // ... let mut r1 = r_plus - r0; r1.0 /= TwoGamma2::U32; // Variable-time division on secret-derived data (r1, r0) } ``` ### Impact The dividend (`r1.0`) is derived from secret key material. An attacker with precise timing measurements could extract information about the signing key by observing timing variations in the division operation. ### Mitigation Integer division was replaced with a constant-time Barrett reduction.
Affected packages (2)
- crates.io/ml-dsafrom 0, < 0.1.0-rc.3
- crates.io/ml-dsa>= 0.0.0-0, < 0.1.0-rc.3
CVSS scores
| Source | Version | Severity | Vector |
|---|---|---|---|
| osv | CVSS 3.1 | MEDIUM6.4 | CVSS:3.1/AV:A/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N |
References (7)
- ADVISORYhttps://nvd.nist.gov/vuln/detail/CVE-2026-22705
- PATCHhttps://crates.io/crates/ml-dsa
- PATCHhttps://github.com/RustCrypto/signatures
- WEBhttps://github.com/RustCrypto/signatures/commit/035d9eef98486ecd00a8bf418c7817eb14dd6558
- WEBhttps://github.com/RustCrypto/signatures/pull/1144
- WEBhttps://github.com/RustCrypto/signatures/security/advisories/GHSA-hcp2-x6j4-29j7
- WEBhttps://rustsec.org/advisories/RUSTSEC-2025-0144.html