CVE-2025-54873: Risc0 zkvm Division Vulnerability
LOWCVE-2025-54873 is a LOW division vulnerability (CWE-369: Divide By Zero) affecting Risc0 zkvm libraries in the crates.io ecosystem. The issue involves division. Remediation is available by upgrading affected packages to version 2.2.0, 3.0.0.
CVE-2025-54873 at a Glance
How to Fix CVE-2025-54873
To remediate this vulnerability, upgrade all affected Risc0 zkvm 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 risc0-zkvm to 2.2.0
Upgrade risc0-circuit-rv32im to 3.0.0
Upgrade risc0-circuit-rv32im-sys to 3.0.0
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for risc0-zkvm
How to Check if You Are Affected
To determine whether your application is affected by CVE-2025-54873, inspect your project dependencies for Risc0 zkvm:
inspect dependencies for risc0-zkvm
Analyze the terminal output to locate any version of Risc0 zkvm in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 2.2.0), 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-369: Divide By Zero, where the product divides a value by zero. In Risc0 zkvm, 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
CVE-2025-54873 Affected Risc0 zkvm Versions
3 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
risc0-zkvm
|
crates.io |
≥ 2.0.0
< 2.2.0
|
2.2.0
|
|
risc0-circuit-rv32im
|
crates.io |
≥ 2.0.0
< 3.0.0
|
3.0.0
|
|
risc0-circuit-rv32im-sys
|
crates.io |
≥ 2.0.0
< 3.0.0
|
3.0.0
|
References
Frequently Asked Questions
What is CVE-2025-54873?
Which Risc0 zkvm versions are affected?
What version fixes CVE-2025-54873?
Is risc0-zkvm affected?
Is risc0-circuit-rv32im affected?
What CWE is associated with CVE-2025-54873?
How can I check crates.io dependencies for CVE-2025-54873?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-f6rc-24x4-ppxp",
"modified" : "2025-08-06T14:32:02Z",
"published" : "2025-08-05T17:42:06Z",
"aliases" : [ "CVE-2025-54873" ],
"summary" : "RISC Zero Underconstrained Vulnerability: Division",
"details" : "Two issues were found: For some inputs to signed integer division, the circuit allowed two outputs, only one of which was valid. Additionally, the result of division by zero was underconstrained.\n\nThis vulnerability was identified using the Picus tool from Veridise. \n\nImpacted on-chain verifiers have already been disabled via the estop mechanism outlined in the [Verifier Management Design](https://github.com/risc0/risc0-ethereum/blob/release-2.0/contracts/version-management-design.md#base-verifier-implementations). \n\n## Mitigation\n\nWe recommend all impacted users upgrade as soon as possible.\n\nRust applications using the `risc0-zkvm` crate at versions < 2.2 should upgrade to version 2.2.0 or later. \n\nSmart contract applications using the official [RISC Zero Verifier Router](https://dev.risczero.com/api/blockchain-integration/contracts/verifier#verifier-router) do not need to take any action: zkVM version 2.2 is active on all official routers, and version 2.1 has been disabled.\n\nSmart contract applications not using the verifier router should update their contracts to send verification calls to the 2.2 version of the verifier.",
"severity" : [ {
"type" : "CVSS_V4",
"score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N/E:U"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "crates.io",
"name" : "risc0-zkvm"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "2.0.0"
}, {
"fixed" : "2.2.0"
} ]
} ]
}, {
"package" : {
"ecosystem" : "crates.io",
"name" : "risc0-circuit-rv32im"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "2.0.0"
}, {
"fixed" : "3.0.0"
} ]
} ]
}, {
"package" : {
"ecosystem" : "crates.io",
"name" : "risc0-circuit-rv32im-sys"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "2.0.0"
}, {
"fixed" : "3.0.0"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/risc0/risc0/security/advisories/GHSA-f6rc-24x4-ppxp"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2025-54873"
}, {
"type" : "WEB",
"url" : "https://github.com/risc0/risc0/pull/3235"
}, {
"type" : "WEB",
"url" : "https://github.com/risc0/zirgen/pull/249"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/risc0/risc0"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-369" ],
"severity" : "LOW",
"github_reviewed" : true,
"github_reviewed_at" : "2025-08-05T17:42:06Z",
"nvd_published_at" : "2025-08-06T00:15:31Z"
}
}