☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-70955

CVE-2025-70955 Vulnerability in TON
📅 PUBLISHED: 2026-02-13 00:00 UTC 🔄 UPDATED: 2026-09-23 20:40 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.63%
👁️
0.63% probability
15.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-70955 is a critical Stack Overflow vulnerability discovered in the TON Virtual Machine (TVM) prior to version v2024.10. The flaw originates from improper handling of vmstate and continuation jump instructions, enabling continuous dynamic tail calls. An attacker can craft a smart contract with deeply nested jump logic that, even within permissible gas limits, exhausts the host process's stack space, causing a validator node to crash. This results in a Denial of Service (DoS) condition for the TON blockchain network, potentially halting consensus and transaction processing.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects the TON blockchain node software, which is distributed as a compiled binary or via source code from the official TON repository. There is no NPM, PyPI, Go, or Ruby package involved. However, node operators must ensure they are running a patched version (v2024.10 or later) to mitigate the risk. The lack of a public patch or advisory from the vendor increases the urgency for manual mitigation.

CVSS Breakdown & Threat Level

While no official CVSS vector is provided, based on the technical details, a reasonable assessment is:

  • Attack Vector (AV): Network (the attacker deploys a smart contract to the network)
  • Attack Complexity (AC): Low (crafting a nested jump contract is straightforward)
  • Privileges Required (PR): None (anyone can deploy a contract)
  • User Interaction (UI): None
  • Scope (S): Changed (the crash affects the entire validator node, not just the contract)
  • Confidentiality (C): None
  • Integrity (I): None
  • Availability (A): High (node crash leads to DoS)

Estimated CVSS Score: 7.5 (High)

Threat Level: High. The vulnerability is easily exploitable and can cause widespread network disruption.

Deep Dive & Mechanics

The TON Virtual Machine (TVM) uses a stack-based architecture with continuations for control flow. Continuations allow for tail-call optimization, where a function call reuses the current stack frame. However, the vulnerability lies in the improper handling of vmstate and continuation jump instructions.

Root Cause: When a smart contract executes a series of nested jump instructions (e.g., JMP or CALL with continuations), the TVM creates new continuation objects on the stack. If the nesting is deep enough, each jump pushes a new frame onto the host process's call stack. The gas limit is intended to prevent infinite loops, but it does not account for stack depth. An attacker can craft a contract that, within the gas limit, performs a large number of nested jumps, causing the host stack to overflow.

Technical Flow:

  1. Attacker deploys a smart contract with a recursive or deeply nested jump structure.
  2. The contract is executed by a validator node.
  3. Each jump instruction creates a new continuation, pushing a stack frame.
  4. The gas counter decrements, but the stack depth grows unchecked.
  5. Eventually, the host process's stack space is exhausted, causing a segmentation fault or crash.
  6. The validator node goes offline, disrupting consensus.

Impact:

  • Validator nodes crash, leading to network partition or halt.
  • Transactions may be lost or delayed.
  • The attacker can repeatedly deploy such contracts to sustain the DoS.

Vulnerable vs. Patched Code

Vulnerable Code (Pre-v2024.10): The vulnerable code likely resides in the TVM's continuation handling logic. A simplified pseudocode example:

void execute_jump(Continuation *cont) {
    // Vulnerable: no stack depth check
    push_continuation(cont);
    execute_continuation(cont);
}

Patched Code (v2024.10): The patch introduces a stack depth limit check:

void execute_jump(Continuation *cont) {
    if (get_stack_depth() > MAX_STACK_DEPTH) {
        throw_exception(STACK_OVERFLOW);
    }
    push_continuation(cont);
    execute_continuation(cont);
}

The exact patch details are not publicly available, but the fix likely involves adding a counter for nested continuations and aborting execution when a threshold is reached.

Exploitation & Lab Setup

Red Team (Attacker)

Objective: Crash a TON validator node by deploying a malicious smart contract.

Prerequisites:

  • Access to a TON testnet or mainnet node.
  • Ability to deploy a smart contract (e.g., using Fift or FunC).

Exploit Contract (Fift-like pseudocode):

// Malicious contract with deep nesting
PROGRAM{
    // Recursive jump loop
    .loop:
        // Perform some gas-consuming operation
        PUSHINT 1
        ADD
        // Jump back to loop (creates continuation)
        JMP .loop
}END>c

Steps:

  1. Compile the contract using Fift.
  2. Deploy the contract to the network.
  3. Trigger execution (e.g., by sending a transaction).
  4. The validator node crashes due to stack overflow.

Note: No public exploit code is available, but the concept is straightforward.

Blue Team (Defender)

Detection:

  • Monitor validator node logs for segmentation faults or stack overflow errors.
  • Use resource monitoring (e.g., top, htop) to detect abnormal CPU/memory usage.
  • Implement network-level monitoring for unusual contract deployment patterns.

Mitigation:

  • Immediately upgrade to TON v2024.10 or later.
  • If patching is not possible, implement a custom stack depth limit in the TVM configuration.
  • Use a Web Application Firewall (WAF) or API gateway to filter suspicious contract bytecode.

Lab Setup:

  • Set up a TON testnet node with logging enabled.
  • Deploy the malicious contract and observe the crash.
  • Test the patched version to confirm the fix.

Indicators of Compromise (IOCs)

  • Log Entries:
    • ERROR: Stack overflow in TVM execution
    • Segmentation fault (core dumped)
    • Fatal: Continuation depth exceeded
  • Network Traffic:
    • Repeated deployment of contracts with high nesting depth.
    • Contracts with bytecode containing many JMP or CALL instructions.
  • System Metrics:
    • Sudden spike in memory usage on validator nodes.
    • Validator node process crashes and restarts frequently.

Detection Engineering

YARA Rule

rule TON_StackOverflow_Contract {
    meta:
        description = "Detects TON smart contracts with deep nesting patterns"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-70955"
    strings:
        $jmp = { 4A 4D 50 } // JMP opcode in TON bytecode
        $call = { 43 41 4C 4C } // CALL opcode
        $loop = { 6C 6F 6F 70 } // "loop" string in comments
    condition:
        #jmp > 100 or #call > 100
}

Sigma Rule

title: TON Validator Stack Overflow Crash
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects stack overflow errors in TON validator logs
author: Valters IT
logsource:
    product: linux
    service: syslog
detection:
    selection:
        - "Stack overflow"
        - "Segmentation fault"
        - "Continuation depth"
    condition: selection
falsepositives:
    - Legitimate deep recursion in contracts (rare)
level: high

Suricata Rule

alert tcp any any -> any 30303 (msg:"TON Stack Overflow Exploit Attempt"; flow:to_server; content:"|4A 4D 50|"; depth:100; threshold:type both, track by_src, count 10, seconds 60; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade: Update all TON validator nodes to version v2024.10 or later.
  2. Workaround: If patching is delayed, implement a custom stack depth limit in the TVM configuration file (e.g., max_continuation_depth = 1000).
  3. Monitoring: Enable detailed logging and set up alerts for stack overflow errors.

Long-term Measures:

  • Code Review: Conduct a security audit of the TVM continuation handling logic.
  • Fuzzing: Use fuzzing tools to test for similar vulnerabilities.
  • Network Segmentation: Isolate validator nodes from public internet access where possible.

Vendor Communication:

  • Since the patch status is UNKNOWN, contact the TON Foundation for an official advisory.
  • Monitor the TON GitHub repository for updates.

Valters IT Signature
This report is generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-70955/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.