CVE-2026-77640
LowCVSS 3.7Exploitation Probability (EPSS)
Low risk30th percentile - higher than 30% of all known CVEs
Summary
Tor before 0.4.9.9 can enter an infinite loop when decompressing a truncated zlib/gzip stream with done=1. The truncated stream never reaches Z_STREAM_END, causing zlib to return Z_BUF_ERROR, which is mistaken for a full output buffer.
Risk Assessment
The infinite loop can cause a process hang, potentially leading to denial of service for the Tor service.
Recommendation
Upgrade to version 0.4.9.9 or later, which contains the fix.
Other vulnerabilities in Tor
See all- CVE-2016-1254High
Tor before 0.2.8.12 might allow remote attackers to cause a denial of service (client crash) via a crafted hidden service descriptor.
- CVE-2017-8823High
In Tor before version 0.2.5.16 and in versions 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 before 0.3.1.9, there is a use-after-free vulnerability in onion service v2 during intro-point expiration due to mismanagement of the expiring list in certain error cases.
- CVE-2017-8821High
In Tor before version 0.2.5.16 and in versions 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 before 0.3.1.9, an attacker can cause a denial of service (application hang) via crafted PEM input that signifies a public key requiring a password, triggering an attempt by the OpenSSL library to ask the user for the password.
- CVE-2017-8820High
In Tor before version 0.2.5.16 and in versions 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 before 0.3.1.9, remote attackers can cause a denial of service via a NULL pointer dereference, leading to application crash.
- CVE-2017-8819High
In Tor before version 0.2.5.16 and in versions 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 before 0.3.1.9, the replay-cache protection mechanism is ineffective for v2 onion services. An attacker can send many INTRODUCE2 cells to trigger this issue.
- CVE-2017-0377High
Tor 0.3.x before 0.3.0.9 has a guard-selection algorithm that only considers the exit relay, not the exit relay's family. This may allow remote attackers to defeat intended anonymity properties by leveraging the existence of large families.
- CVE-2017-0375High
The hidden-service feature in Tor before version 0.3.0.8 allows a denial of service (assertion failure and daemon exit) via a malformed BEGIN cell.
- CVE-2016-8860High
Tor versions before 0.2.8.9 and 0.2.9.x before 0.2.9.4-alpha had functions that expected buf_t data to be NUL terminated. The implementation in or/buffers.c did not ensure this termination, allowing remote attackers to cause a denial of service (client, hidden service, relay, or authority crash) via crafted data.
- CVE-2026-87724Medium
Tor before version 0.4.9.12 interprets the CC_RESPONSE extension even when CC_REQUEST was not sent, allowing remote attackers to cause a denial of service (crash) due to corrupted congestion-control state. This is TROVE-2026-032.
- CVE-2026-77642High
Tor before 0.4.9.9 was prone to an out-of-bounds write when parsing a consensus or detached signature with unexpected signature digest type. Impact is minor for most Tor roles, but potentially major for directory authorities.
Original NVD description (English source)
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.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

