{"id":"RUSTSEC-2021-0156","summary":"Triton VM Soundness Vulnerability due to Missing Constraint","details":"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.\n\nAny 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.\n\nThe flaw was corrected in commits `17c7ba0a` and `ef9d9e72` by including the appropriate constraints.","aliases":["GHSA-vjf8-9fx6-mv6x"],"modified":"2026-08-24T08:15:15.452880676Z","published":"2021-06-11T12:00:00Z","database_specific":{"license":"CC0-1.0"},"references":[{"type":"PACKAGE","url":"https://crates.io/crates/triton-vm"},{"type":"ADVISORY","url":"https://rustsec.org/advisories/RUSTSEC-2021-0156.html"}],"affected":[{"package":{"name":"triton-vm","ecosystem":"crates.io","purl":"pkg:cargo/triton-vm"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0.42.0-alpha.4"},{"fixed":"4.0.0"}]}],"ecosystem_specific":{"affected_functions":null,"affects":{"os":[],"functions":["triton_vm::verify"],"arch":[]}},"database_specific":{"informational":null,"categories":["crypto-failure"],"cvss":null,"source":"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2021-0156.json"}}],"schema_version":"1.9.0"}