A State Pollution vulnerability was discovered in the TON Virtual Machine (TVM) before v2025.04. The issue exists in the RUNVM instruction logic (VmState::runchildvm), which is responsible for initializing child virtual machines. The operation moves critical resources (specifically libraries and log) from the parent state to a new child state in a non-atomic manner. If an Out-of-Gas (OOG) exception occurs after resources are moved but before the state transition is finalized, the parent VM retains a corrupted state where these resources are emptied/invalid. Because RUNVM supports gas isolation, the parent VM continues execution with this corrupted state, leading to unexpected behavior or denial of service within the contract's context.
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-70956.json"
[
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "29324889744851572738815809274921750128",
"length": 1112.0
},
"source": "https://github.com/ton-blockchain/ton/commit/1835d84602bbaaa1593270d7ab3bb0b499920416",
"signature_type": "Function",
"id": "CVE-2025-70956-6d1fc490",
"target": {
"file": "crypto/vm/vm.cpp",
"function": "VmState::run_child_vm"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"53894155880948149276052901331365173357",
"79104320538571693451214850926176828564",
"307083205793735348047708172252774912473",
"231488853471609936760833955600202851377"
]
},
"source": "https://github.com/ton-blockchain/ton/commit/1835d84602bbaaa1593270d7ab3bb0b499920416",
"signature_type": "Line",
"id": "CVE-2025-70956-8d510ee1",
"target": {
"file": "crypto/vm/vm.cpp"
}
}
]