RustSec logo

HistoryEditJSON (OSV)

RUSTSEC-2021-0156

Triton VM Soundness Vulnerability due to Missing Constraint

Reported
Issued
Package
triton-vm (crates.io)
Type
Vulnerability
Categories
Keywords
#proof-system #unsound
Patched
  • >=4.0.0
Unaffected
  • <0.42.0-alpha.4
Affected Functions
Version
triton_vm::verify
  • <4.0.0, >=0.42.0-alpha.4

Description

The instruction sponge_absorb_mem 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 sponge_absorb_mem 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.

Advisory available under CC0-1.0 license.