RUSTSEC-2026-0426 (GHSA-R7WM-4VF2-H44W)
Vulnerability from osv_rustsec – Published: 2026-10-30 12:00 – Updated: 2026-10-30 11:04 – Source websiteSummary
On targets that do not have a conditional move/select operations, LLVM compiles the internal conditional_sub_u32() function, into one that will contain a conditional jump on secret-dependent data, which could leak information about encapsulation and signing keys.
conditional_sub_u32() is used throughout the field arithmetic of both ML-KEM and ML-DSA.
Impact
The variable-time jumps have been observed for ML-KEM and ML-DSA on:
- i586-unknown-linux-gnu
- s390x-unknown-linux-gnu
Additionally, ML-DSA sees the vulnerable LLVM optimization on x86_64-unknown-linux-gnu, for hazardous::dsa::mldsa44 and hazardous::dsa::mldsa87.
The leakage this LLVM optimization introduces could enable recovery of cryptographic secrets. The practicality of exploiting the leakage depends on the compiler, target CPU used and how "close" to the process using the vulnerable functions the attacker is.
Resolution
Upgrade to v0.17.16 or v0.18.1. conditional_sub_u32() has been re-written to take conditional-move/jump ops availability into account.
| URL | Type | |
|---|---|---|
{
"affected": [
{
"database_specific": {
"categories": [
"crypto-failure"
],
"cvss": null,
"informational": null
},
"ecosystem_specific": {
"affected_functions": null,
"affects": {
"arch": [
"s390x",
"x86",
"x86_64"
],
"functions": [],
"os": []
}
},
"package": {
"ecosystem": "crates.io",
"name": "orion",
"purl": "pkg:cargo/orion"
},
"ranges": [
{
"events": [
{
"introduced": "0.0.0-0"
},
{
"fixed": "0.17.16"
},
{
"introduced": "0.18.0-0"
},
{
"fixed": "0.18.1"
}
],
"type": "SEMVER"
}
],
"versions": []
}
],
"aliases": [
"GHSA-r7wm-4vf2-h44w"
],
"database_specific": {
"license": "CC0-1.0"
},
"details": "## Summary\n\nOn targets that do not have a conditional move/select operations, LLVM compiles the internal `conditional_sub_u32()` function, into one that will contain a conditional jump on secret-dependent data, which could leak information about encapsulation and signing keys.\n\n`conditional_sub_u32()` is used throughout the field arithmetic of both ML-KEM and ML-DSA.\n\n## Impact\n\nThe variable-time jumps have been observed for ML-KEM and ML-DSA on:\n- `i586-unknown-linux-gnu`\n- `s390x-unknown-linux-gnu`\n\nAdditionally, ML-DSA sees the vulnerable LLVM optimization on `x86_64-unknown-linux-gnu`, for `hazardous::dsa::mldsa44` and `hazardous::dsa::mldsa87`.\n\nThe leakage this LLVM optimization introduces could enable recovery of cryptographic secrets. The practicality of exploiting the leakage depends on the compiler, target CPU used and how \"close\" to the process using the vulnerable functions the attacker is.\n\n## Resolution\n\nUpgrade to `v0.17.16` or `v0.18.1`. `conditional_sub_u32()` has been re-written to take conditional-move/jump ops availability into account.",
"id": "RUSTSEC-2026-0426",
"modified": "2026-10-30T11:04:43Z",
"published": "2026-10-30T12:00:00Z",
"references": [
{
"type": "PACKAGE",
"url": "https://crates.io/crates/orion"
},
{
"type": "ADVISORY",
"url": "https://rustsec.org/advisories/RUSTSEC-2026-0426.html"
},
{
"type": "WEB",
"url": "https://github.com/orion-rs/orion/pull/689"
}
],
"related": [],
"severity": [],
"summary": "LLVM introduces timing-vulnerable optimizations into ML-KEM and ML-DSA operations intended to be constant-time"
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
Loading timeline…
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.