GHSA-vjf8-9fx6-mv6x: Rust/triton-vm vulnerability
The instruction spongeabsorbmem Triton VM fails to verify that hashed values come from the claimed memory location. Malicious provers can substitute arbitrary data instead of actual memory contents.
Any application using instruction spongeabsorbmem to hash memory data can be given a proof for a forged hash that doesn't correspond to the actual memory. This breaks the security of memory-based commitments.
The flaw was corrected in commits 17c7ba0a and ef9d9e72 by including the appropriate constraints.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
rust/triton-vmto a version that resolves this vulnerability.Fixed in 4.0.0
Event History
Frequently Asked Questions
Which uses of Triton VM are affected?
Applications that use `sponge_absorb_mem` to hash memory data are exposed. The issue undermines memory-based commitments because a malicious prover can produce a proof for a hash of substituted data rather than the contents at the claimed memory location.
What does an attacker need to exploit this issue?
An attacker must be able to act as a malicious prover and provide a proof to an application that relies on `sponge_absorb_mem` for hashing memory data. They can substitute arbitrary data for the actual memory contents in the proof.
What remediation is available?
Update to code containing the corrections from commits `17c7ba0a` and `ef9d9e72`, which add the missing constraints. The provided data does not identify an alternative mitigation if updating is not immediately possible.