GHSA-xrf2-5r3p-5wgj: libcrux Panic Vulnerability
HIGHGHSA-xrf2-5r3p-5wgj is a HIGH panic vulnerability (CWE-125: Out-of-bounds Read) affecting libcrux libraries in the crates.io ecosystem. The issue involves panic in signature hint decoding during verification. Remediation is available by upgrading affected packages to version 0.0.8.
GHSA-xrf2-5r3p-5wgj at a Glance
How to Fix GHSA-xrf2-5r3p-5wgj
To remediate this vulnerability, upgrade all affected libcrux dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade libcrux-ml-dsa to 0.0.8
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for libcrux-ml-dsa
How to Check if You Are Affected
To determine whether your application is affected by GHSA-xrf2-5r3p-5wgj, inspect your project dependencies for libcrux:
inspect dependencies for libcrux-ml-dsa
Analyze the terminal output to locate any version of libcrux in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 0.0.8), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-125: Out-of-bounds Read, where the product reads data past the end, or before the beginning, of the intended buffer. In libcrux, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
GHSA-xrf2-5r3p-5wgj Affected libcrux Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
libcrux-ml-dsa
|
crates.io |
< 0.0.8
|
0.0.8
|
References
Frequently Asked Questions
What is GHSA-xrf2-5r3p-5wgj?
Which libcrux versions are affected?
What version fixes GHSA-xrf2-5r3p-5wgj?
Is libcrux-ml-dsa affected?
What CWE is associated with GHSA-xrf2-5r3p-5wgj?
How can I check crates.io dependencies for GHSA-xrf2-5r3p-5wgj?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-xrf2-5r3p-5wgj",
"modified" : "2026-03-26T17:58:16Z",
"published" : "2026-03-26T17:58:16Z",
"aliases" : [ ],
"summary" : "libcrux: Panic in Signature Hint Decoding During Verification",
"details" : "During ML-DSA verification the serialized hint values are decoded as specified in algorithm 22 `HintBitUnpack` of [FIPS 204, subsection 7.1](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf#%5B%7B%22num%22%3A120%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22FitH%22%7D%2C657%5D). The algorithm requires that the cumulative hint counters per row of the hint vector are strictly increasing and below a maximum value which depends on the choice of ML-DSA parameter set (line 4).\n\nIn libcrux-ml-dsa, hint decoding did not check the boundedness of the cumulative hint counter of the last row of the hint vector.\n\n## Impact\nA manipulated invalid hint can cause an out-of-bounds memory access since the hint decoding logic may attempt to read outside the bounds of the serialized signature, causing a runtime panic.\n\n## Mitigation\nStarting from version `0.0.8`, hint decoding will check the cumulative hint counter of the last row as well.",
"severity" : [ {
"type" : "CVSS_V4",
"score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "crates.io",
"name" : "libcrux-ml-dsa"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "0.0.8"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/cryspen/libcrux/pull/1348"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/cryspen/libcrux"
}, {
"type" : "WEB",
"url" : "https://rustsec.org/advisories/RUSTSEC-2026-0076.html"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-125", "CWE-1285" ],
"severity" : "HIGH",
"github_reviewed" : true,
"github_reviewed_at" : "2026-03-26T17:58:16Z",
"nvd_published_at" : null
}
}