Executive brief
Triton VM is a zero-knowledge proof system used to verify computation integrity. The sponge_absorb_mem instruction, which is meant to hash data from memory, lacks verification that the data being hashed actually comes from the claimed memory location. This allows an attacker to construct a false proof claiming to have hashed certain data without actually reading it from memory, undermining the security of any application relying on memory-based cryptographic commitments.
Technical details
This is an insufficient verification vulnerability (CWE-345) in the Algebraic Intermediate Representation (AIR) constraints of Triton VM. The sponge_absorb_mem instruction was designed to read data from RAM and hash it, but the proof system did not enforce a constraint verifying that data was actually read from the claimed memory location. A malicious prover could generate a valid-looking proof for the instruction without performing the actual memory read operation, allowing them to forge hash proofs. The vulnerability affects versions >= 0.42.0-alpha.4 through < 4.0.0 of the triton-vm crate. Network reachability and no special privileges are required to exploit this in any system using the vulnerable instruction. The flaw was corrected in commits 17c7ba0a and ef9d9e72 by adding the missing RAM read constraint to the AIR.
Affected products
- TritonVM triton-vm >=0.42.0-alpha.4, <4.0.0
Timeline
- 2026-08-18: disclosed
- 2026-06-10: patched: Patch commits 17c7ba0a and ef9d9e72 merged