Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach Thrift c_glib endpoint over network
-
DeliverySend crafted malformed Thrift message
-
ExploitTrigger loop with unreachable exit condition
-
ExecutionWorker spins indefinitely consuming resources
-
ImpactService denial of service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Loop termination conditions
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target application use the Apache Thrift c_glib (C/GLib) language bindings at a version before 0.25.0 AND process attacker-reachable Thrift protocol input, since the infinite loop is triggered by a crafted/malformed message during decoding. The CVSS AT:P (attack requirements) flag indicates a specific input condition must be satisfied rather than any arbitrary traffic. Key limiting factors: applications using any other Thrift language binding (Java, Python, C++, Go, etc.) are NOT affected; the attacker must be able to deliver Thrift messages to the service; and impact is confined to availability (service hang/resource exhaustion) with no data exposure or code execution. Upgrading to 0.25.0 removes the condition. |
| Impact | This is a denial-of-service issue (CWE-835, unreachable loop exit) in the Apache Thrift c_glib bindings, rated CVSS 8.2 via a CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H). The vector confirms a network, unauthenticated, no-user-interaction path with impact limited strictly to availability (VA:H) - there is no confidentiality or integrity impact, so the 8.2 score is driven entirely by remote-triggerable availability loss. Importantly, the vector carries AT:P (attack requirements present), signaling that exploitation is not fully unconditional and depends on a specific triggering condition, which tempers the otherwise 'network/low-complexity/no-auth' profile. No EPSS score, no POC, and no CISA KEV entry were provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. Net assessment: this is a legitimate but moderate-priority availability bug - real for services that expose the c_glib binding to untrusted peers, but not a confidentiality/RCE emergency; prioritize patching for internet- or partner-facing Thrift c_glib services and treat internal-only deployments as routine. No SSVC decision data was supplied in the input, so automatable/exploitation status cannot be cross-referenced. |
| Exploit ScenarioDerived | An attacker who can send Thrift protocol messages to a service built on the vulnerable c_glib bindings submits a crafted/malformed payload that drives the decoder into a loop whose exit condition is never reached. The worker thread or process spins indefinitely (or consumes resources), rendering the service unresponsive to legitimate clients. No public proof-of-concept was identified in the provided data, and the CVSS AT:P flag indicates a specific malformed-input condition must be met to trigger the loop. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 02, 2026
Denial of service in Apache Thrift's c_glib (C/GLib) language bindings, affecting all versions before 0.25.0, where a crafted or malformed Thrift message can drive the decoder into an infinite loop with an unreachable exit condition (CWE-835). The issue is remotely reachable and requires no authentication per the published CVSS 4.0 vector (PR:N), though the AT:P attack-requirements flag and our independent CVSS 3.1 assessment (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H) both indicate a specific input condition must be satisfied rather than arbitrary traffic. Impact is confined to availability - a hung thread, pinned CPU, or resource exhaustion that can stall or crash the service - with no data exposure, modification, or code execution; only applications that compile and use the c_glib bindings are affected, and no public exploit code has been identified at time of analysis. Upgrading to 0.25.0 removes the condition.
RemediationAI
Vendor-released patch: upgrade Apache Thrift to 0.25.0, which fixes the c_glib infinite loop; consult the advisories at https://lists.apache.org/thread/33otcgbqd27wf6qq810q56znzbomnhg1 and https://lists.apache.org/thread/1zdvscq7p3hf3z30s26h4tm9dvljm1jj for build and release details. If immediate upgrade is not possible, the most effective compensating control is to stop exposing c_glib-based Thrift endpoints to untrusted networks - restrict them to trusted clients via network ACLs, mTLS, or a service mesh, accepting the operational cost of reduced client reachability. As a secondary layer, run c_glib services under process supervision with per-request CPU and wall-clock timeouts (for example, cgroup CPU quotas, GLib main-loop deadlines, or a watchdog that restarts the worker on a stall), which converts a hard hang into a recoverable restart but does not eliminate the underlying loop and can drop in-flight requests. Where feasible, migrate the affected service to a Thrift binding that is not impacted (Java, C++, Go, or Python) from an equivalent release, as only the c_glib bindings contain this flaw; this requires a code and possibly ABI change in the client or server integration and should be validated for serialization compatibility before rollout.
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
Apache Thrift is a cross-language RPC and serialization framework that generates bindings for many languages; CVE-2026-85476 is specific to the c_glib bindings, the C implementation that links against GLib. The root cause is CWE-835, a loop with an unreachable exit condition: when a crafted or truncated Thrift protocol message is decoded by the c_glib reader, a control-flow path can fail to advance its state or never satisfy the loop's termination predicate, so the process spins indefinitely. Because the flaw lives in the generated C/GLib deserialization path rather than in the wire protocol itself, applications using the Java, Python, C++, Go, or other language bindings from the same Thrift release are not impacted. The CPE cpe:2.3:a:apache_software_foundation:apache_thrift:*:*:*:*:*:*:*:* reflects the upstream project scope, while the actual affected attack surface is limited to services exposing Thrift endpoints that were built with the c_glib runtime before 0.25.0.
Know when Apache Thrift 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Network-reachable and unauthenticated (AV:N/PR:N), but AC:H reflects the specific crafted-input condition (AT:P in 4.0); impact is availability-only, so C:N/I:N/A:H.
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
Lifecycle Timeline
2DescriptionCVE.org
Loop with unreachable exit condition ('infinite loop') vulnerability in Apache Thrift c_glib bindings.
This issue affects Apache Thrift: before 0.25.0.
Users are recommended to upgrade to version 0.25.0, which fixes the issue.
Executive ViewAI
A high-severity denial-of-service vulnerability in Apache Thrift's C/GLib language bindings (CVE-2026-85476) allows an unauthenticated remote attacker to stall or crash services that compile and use these bindings by sending a crafted Thrift message that triggers an infinite loop. Only applications using the c_glib bindings are affected, and exploitation requires a specific input condition, but successful attacks can pin CPU, hang threads, and exhaust resources, disrupting service availability. No public exploit identified at time of analysis, no vendor-released patch identified at time of analysis, and the vulnerability does not permit data exposure or code execution.
Implement input validation and rate limiting on Thrift endpoints, enforce resource limits (CPU, memory, thread pools) to contain infinite loops, monitor for hung threads or CPU spikes, and consider disabling or isolating c_glib bindings if not essential until version 0.25.0 is available.
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.
More in Apache Thrift
View allHeap-based buffer overflow in the C++ THeaderTransport of Apache Thrift before 0.25.0 lets a remote, unauthenticated att
Heap-based memory corruption in Apache Thrift versions before 0.25.0 lets unauthenticated remote attackers who can send
Denial of service in Apache Thrift deployments that use the D language bindings before version 0.25.0, where malformed i
Denial of service in the Apache Thrift Node.js bindings (all versions before 0.25.0) lets remote, unauthenticated attack
Remote denial of service against Apache Thrift C++ deployments that use the THeaderProtocol is achievable by sending a c
Remote, unauthenticated attackers can crash applications built against Apache Thrift's c_glib (C/GLib) language bindings
Denial of service in Apache Thrift's c_glib (C/GLib) language bindings before 0.25.0, where a crafted or malformed messa
Denial of service in Apache Thrift's Go bindings (all versions before 0.25.0) allows an unauthenticated remote peer to c
Memory exhaustion in Apache Thrift's Node.js and D language WebSocket server transports (all versions before 0.25.0) let
Uncaught exception handling in the Apache Thrift Ruby bindings lets unauthenticated remote attackers crash network-reach
Inefficient algorithmic complexity (CWE-407) in Apache Thrift's Lua bindings prior to version 0.25.0 allows remote, unau
Unauthenticated remote attackers can crash applications that use the Apache Thrift PHP bindings prior to version 0.25.0
EUVD-2026-91578
GHSA-g8vm-x5x9-xjwr
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB