{"id":"GHSA-vjf8-9fx6-mv6x","aliases":["RUSTSEC-2021-0156"],"status":"published","title":"Triton VM Soundness Vulnerability due to Missing Constraint","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.\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.","severity":{"version":"4.0","score":6.9,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium","from":"ghsa"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-345"],"published":"2021-06-11T12:00:00Z","modified":"2026-08-24T08:26:02Z","fixes":[{"ecosystem":"crates.io","package":"triton-vm","fixed_in":["4.0.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"triton-vm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.42.0-alpha.4"},{"fixed":"4.0.0"}]}]},{"source":"osv","ecosystem":"crates.io","package":"triton-vm","ranges":[{"type":"SEMVER","events":[{"introduced":"0.42.0-alpha.4"},{"fixed":"4.0.0"}]}]},{"source":"osv","ecosystem":"crates.io","package":"triton-vm","ranges":[{"type":"SEMVER","events":[{"introduced":"0.42.0-alpha.4"},{"fixed":"4.0.0"}]}]}],"references":[{"url":"https://github.com/TritonVM/triton-vm/commit/17c7ba0a19f31793f1c807a58afaf9504342aac5","tags":["web"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2021-0156.html","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-vjf8-9fx6-mv6x"},{"url":"https://github.com/TritonVM/triton-vm","tags":["package"]},{"url":"https://crates.io/crates/triton-vm","tags":["package"]}],"sources":{"ghsa":[{"id":"GHSA-vjf8-9fx6-mv6x","title":"Triton VM Soundness Vulnerability due to Missing Constraint","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.\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.","status":"published","published":"2026-08-18T20:22:21Z","modified":"2026-08-18T20:22:22Z","cvss":[{"version":"4.0","score":6.9,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-345"],"updated_at":"2026-11-02T14:41:03.602876Z"}],"osv":[{"id":"GHSA-vjf8-9fx6-mv6x","title":"Triton VM Soundness Vulnerability due to Missing Constraint","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.\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.","status":"published","published":"2026-08-18T20:22:21Z","modified":"2026-08-24T08:26:02.039110353Z","cvss":[{"version":"4.0","score":6.9,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-345"],"updated_at":"2026-11-02T15:46:57.348035Z"},{"id":"RUSTSEC-2021-0156","title":"Triton VM Soundness Vulnerability due to Missing Constraint","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.\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.","status":"published","published":"2021-06-11T12:00:00Z","modified":"2026-08-24T08:15:15.452880676Z","updated_at":"2026-11-02T15:53:39.971022Z"}]}}
