The zkVM Patch That Changes the Guest Image: RISC Zero’s `sys_read` Fix Needs a Rebuild
RISC Zero’s August 27 releases address a critical guest-memory vulnerability in `sys_read`. The proof system itself is unchanged, but developers must rebuild affected guests and refresh their image IDs.

RISC Zero’s latest patch is a reminder that a zkVM application is more than its verifier and proof circuit. On August 27, 2026, the project published patched release tags for the 2.3 and 3.0 lines after addressing a critical memory-safety problem in the guest platform.
The vulnerability affects the way a guest handles input requested through sys_read. According to RISC Zero’s security advisory, a host could provide a crafted response that caused an out-of-bounds write at an arbitrary guest-memory location. That could enable code execution inside the guest and undermine the soundness claim that the guest executed the intended program.
The fix replaces vulnerable pointer arithmetic in the compatibility kernel with Rust slice operations. The advisory identifies risc0-zkvm versions 2.3.2 and 3.0.3 as patched, with risc0-zkvm-platform 2.1.0 or later. Applications using risc0-aggregation should move to version 0.9 or later.
The operational detail matters more than the version number. Updating the host dependency is not enough. Developers must update the guest dependencies, rebuild the guest, and treat the resulting image ID as a new artifact. RISC Zero’s documentation explains that an on-chain verifier binds a receipt to the image ID of the program being proved. A rebuilt guest therefore needs its new image ID propagated wherever the application checks or stores that identifier.
For an application, the minimum audit is:
- Inspect every guest
Cargo.tomland the workspace lockfile forrisc0-zkvm,risc0-build, andrisc0-zkvm-platform. - Upgrade the 2.x line to
risc0-zkvm2.3.2 or later, or the 3.x line to 3.0.3 or later, while keeping the build crate aligned with the zkVM line. - Upgrade
risc0-zkvm-platformto 2.1.0 or later when it is a direct dependency. - Rebuild the guest and record the new image ID.
- Re-run receipt verification and any contract tests that compare image IDs or journals.
- If aggregation is used, upgrade
risc0-aggregationto at least 0.9 and review the corresponding verifier deployment.
A useful check from the advisory is cargo tree --depth 0 -p risc0-zkvm-platform --manifest-path path/to/methods/guest/Cargo.toml. It should show a patched platform version. That check validates dependency resolution; it does not replace rebuilding the guest.
There is also an important boundary around the fix. RISC Zero says the proof system and circuits did not change, so provers do not need a protocol migration merely because of this patch. The change is in guest execution and compatibility code. Still, applications that publish or whitelist image IDs must perform an application-level rollout, because a rebuilt guest produces a different identity even when its intended computation is unchanged.
The advisory was published on October 1, 2025, while the repository’s patched v2.3.2 and v3.0.3 release tags were published on August 27, 2026. That date distinction matters when communicating incident timelines, but it does not weaken the current upgrade guidance: affected guest applications should be rebuilt against a patched line before relying on their receipts.
Get the wire in your inbox
Every new signal, straight from the generator. No noise, unsubscribe anytime.


