Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessEstablish position as malicious Tor relay
-
DeliveryCraft truncated zlib/gzip stream with done=1
-
ExploitDeliver malformed compressed payload to victim Tor node
-
ExecutionTrigger infinite retry loop in buf_add_compress()
-
ImpactSustain CPU exhaustion on victim connection handler
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Input size validation
|
| Exploitation Conditions | Exploitation requires the ability to deliver a crafted, deliberately truncated zlib/gzip compressed stream to a Tor node running a version prior to 0.4.9.9. The CVSS vector (PR:N/UI:N) confirms no authentication or user interaction is required. The key limiting factor is attack complexity (AC:H): the attacker must construct a stream that is syntactically valid enough for Tor to begin decompressing but truncated in a way that exhausts zlib's input without completing the stream, triggering Z_BUF_ERROR with done=1. The most natural attack position is a malicious Tor relay node that can inject or serve compressed data to a victim relay. No non-default configuration is required - any Tor installation that processes zlib/gzip-compressed streams is affected. |
| Impact | The CVSS 3.7 score accurately reflects a low-to-moderate risk profile. The network attack vector (AV:N) confirms remote exploitability, but high attack complexity (AC:H) imposes a meaningful constraint: the attacker must precisely craft a truncated zlib/gzip payload that exhausts zlib's input without completing the stream, which requires non-trivial knowledge of the compression format. The availability impact is rated Low (A:L), consistent with per-connection or per-thread CPU exhaustion rather than a full daemon crash. No EPSS data was provided, leaving exploitation probability unquantified from that signal; the absence of a CISA KEV listing means no confirmed active exploitation is on record. There is no public exploit code identified at time of analysis. The practical threat is most relevant to operators running public Tor relays or bridges that process compressed traffic from untrusted peers - a targeted attacker controlling a malicious relay could abuse this to degrade a victim node's performance, but the high complexity and limited availability impact mean most deployments can treat this as a routine patch-cycle priority rather than emergency response. |
| Exploit ScenarioDerived | An attacker controlling a malicious Tor relay sends a zlib/gzip-compressed stream to a victim Tor node running a version prior to 0.4.9.9, deliberately truncating the stream so it never emits Z_STREAM_END. The victim node's buf_add_compress() function enters an infinite loop, consuming CPU on that connection handler without bound. No public exploit code has been identified, and high attack complexity (AC:H) requires precise crafting of the malformed payload. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 20, 2026
Infinite loop denial-of-service in Tor before 0.4.9.9 allows a remote, unauthenticated attacker to cause sustained CPU exhaustion on a vulnerable node by delivering a crafted truncated zlib/gzip compressed stream. The root cause is in buf_add_compress(), which misinterpreted zlib's Z_BUF_ERROR return (no remaining input) as a full output buffer requiring retry, looping forever without progress. No public exploit has been identified at time of analysis, and the CVSS score of 3.7 with high attack complexity (AC:H) limits practical exploitation to adversaries capable of precisely crafting malformed compressed payloads reachable by a Tor node.
RemediationAI
Upgrade to Tor version 0.4.9.9 or later, which resolves TROVE-2026-021 by modifying buf_add_compress() to return TOR_COMPRESS_ERROR when zlib signals Z_BUF_ERROR with no remaining input, allowing callers to abort cleanly rather than retry indefinitely. The fix is confirmed in the Tor Project ChangeLog at https://gitlab.torproject.org/tpo/core/tor/-/raw/tor-0.4.9.9/ChangeLog. If immediate upgrade is not feasible, a compensating control is to monitor for anomalous sustained CPU spikes on Tor relay processes as an indicator of exploitation, and to rate-limit or restrict compressed data handling from untrusted peers where the Tor configuration permits; however, these controls offer limited protection given the network attack vector and should not substitute for patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Tor uses zlib/gzip stream decompression internally via its buf_add_compress() function. CWE-1284 (Improper Validation of Specified Quantity in Input) describes the root cause class: when a compressed stream is truncated, zlib never emits the Z_STREAM_END sentinel. Instead, once all input is consumed without progress, zlib returns Z_BUF_ERROR. The vulnerable code incorrectly treated this condition as an indication that the output buffer was full and needed draining, causing it to re-invoke zlib with zero remaining input indefinitely. The correct handling - returning TOR_COMPRESS_ERROR - was introduced in 0.4.9.9 so callers can abort cleanly. The CPE string cpe:2.3:a:torproject:tor:*:*:*:*:*:*:*:* confirms all Tor application releases across all platforms are affected up to this fix. The vulnerability is tracked internally as TROVE-2026-021.
Know when Tor gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Network vector confirmed by Tor's relay architecture; AC:H reflects precision required to craft a valid truncated zlib stream; A:L because impact is per-connection CPU exhaustion, not daemon-wide crash.
Primary rating from Vendor (mitre).
CVSS VectorNVD
Lifecycle Timeline
3DescriptionNVD
tor before 0.4.9.9 was prone to an infinite loop when decompressing a truncated zlib/gzip stream with done=1. A truncated stream never reaches Z_STREAM_END, causing zlib to return Z_BUF_ERROR with no input remaining, which buf_add_compress() mistook for a full output buffer and retried forever. Fixed by returning TOR_COMPRESS_ERROR in that case so the caller can abort cleanly. This is TROVE-2026-021.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Tor Browser before 7.0.9 on macOS and Linux allows remote attackers to bypass the intended anonymity feature and discove
Tor before 0.3.5.16, 0.4.5.10, and 0.4.6.7 mishandles the relationship between batch-signature verification and single-s
A use-after-free issue was discovered in Tor 0.3.2.x before 0.3.2.10. Rated high severity (CVSS 7.5), this vulnerability
The SafeSocks option in Tor before 0.4.7.13 has a logic error in which the unsafe SOCKS4 protocol can be used but not th
Out-of-bounds write in The Tor Project's tor daemon (0.2.8.2-alpha through versions before 0.4.9.9) can be triggered whe
The daemon in Tor through 0.4.1.8 and 0.4.2.x through 0.4.2.6 does not verify that a rendezvous node is known before att
Out-of-bounds read by one byte in Tor before version 0.4.9.7 when processing malformed BEGIN cells allows remote unauthe
An out-of-bounds read in Tor before 0.4.9.7 can be triggered by a malicious circuit participant sending an END, TRUNCATE
Rendezvous-point impersonation in Tor before 0.4.9.11 lets a malicious relay that a client happens to select as its rend
Write-after-free in Tor's conflux (traffic-splitting) subsystem allows a remote unauthenticated attacker to crash a Tor
Use-after-free in Tor's conflux circuit handling allows a malicious Tor client to corrupt relay memory by sending a RELA
In Tor before 0.2.5.16, 0.2.6 through 0.2.8 before 0.2.8.17, 0.2.9 before 0.2.9.14, 0.3.0 before 0.3.0.13, and 0.3.1 bef
EUVD-2026-63650
GHSA-5g6h-2vr8-m7f4
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB