Skip to main content

Apache Thrift EUVDEUVD-2026-91405

| CVE-2026-94650 HIGH
Uncontrolled Recursion (CWE-674)
2026-10-02 apache GHSA-hhg4-p43g-gfq2
8.2
CVSS 4.0 · Vendor: apache
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach Thrift c_glib endpoint over network
  2. Delivery
    Craft deeply nested serialized message
  3. Exploit
    Submit to deserializer
  4. Execution
    Trigger unbounded recursion in parser
  5. Impact
    Exhaust stack and crash service (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Recursion depth limits
Exploitation Conditions

Exploitation requires that an application use the Apache Thrift c_glib (C/GLib) bindings at a version before 0.25.0 to deserialize attacker-controlled input; the attacker must be able to deliver a crafted message with deeply nested structures to a Thrift deserialization path. Limiting factors: the flaw is confined to the c_glib bindings, so deployments using other language bindings (Java, Python, C++, etc.) are not affected by this specific issue, and the CVSS attack requirement (AT:P) indicates exploitation depends on the vulnerable recursive parsing path being reachable with untrusted input rather than succeeding unconditionally. Impact is limited to denial of service - there is no confidentiality or integrity consequence.

Impact

This is a denial-of-service (availability-only) flaw: the provided CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H) confirms no confidentiality or integrity impact, only high availability impact, reachable over the network without authentication but with an attack requirement (AT:P) - consistent with CWE-674 Uncontrolled Recursion, where an attacker supplies deeply nested serialized data to exhaust the stack and crash the process. The base score of 8.2 is driven almost entirely by VA:H plus the network, no-privilege, no-interaction profile, not by any data-compromise potential, so despite the 'high' severity this is a crash/outage risk rather than a code-execution or data-breach risk. No EPSS score, no CISA KEV listing, and no POC are present in the input, so exploitation probability signals are entirely absent - there is no public exploit identified at time of analysis and no evidence of active exploitation. Note a data conflict: the input Tags label this 'Information Disclosure,' which directly contradicts the CVSS vector (VC:N, VA:H) - this is an availability/DoS issue, not disclosure, and the tag appears mislabeled. Real-world priority is moderate: patch promptly where the c_glib bindings parse untrusted input, but absent exploit evidence this is not an emergency on the level of an RCE.

Exploit ScenarioDerived

A remote, unauthenticated attacker sends a specially crafted Thrift message containing deeply or recursively nested structures to a service built on the Apache Thrift c_glib bindings. The parser recurses without bound while deserializing, exhausting the stack and crashing the server process, producing a denial of service. No public exploit code is identified at time of analysis, and the CVSS attack requirement (AT:P) suggests success may depend on reaching a vulnerable deserialization path with attacker-controlled input.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 02, 2026

Uncontrolled recursion in Apache Thrift's c_glib (C/GLib) bindings causes stack exhaustion and process crash when a crafted, deeply nested message is deserialized from an untrusted source. Only applications built against the c_glib bindings at versions before 0.25.0 are affected; deployments using the Java, Python, C++ or other language bindings are not impacted by this specific issue. The flaw is availability-only - no confidentiality or integrity loss - and is reachable over the network without authentication (CVSS:4.0 PR:N, AT:P), though exploitation depends on the recursive parsing path being exposed to attacker-controlled input; no public exploit code or confirmed active exploitation was identified at time of analysis.

RemediationAI

Upgrade Apache Thrift to 0.25.0, which is the vendor-released patch version that fixes the uncontrolled recursion in the c_glib bindings, and rebuild any application that statically or dynamically links the c_glib runtime so the corrected reader code is actually in use; vendor advisories with the upgrade guidance are at https://lists.apache.org/thread/33otcgbqd27wf6qq810q56znzbomnhg1 and https://lists.apache.org/thread/poskkt3p754b2f293g63934hw160o86j. If the upgrade cannot be applied immediately, reduce exposure by ensuring c_glib Thrift deserialization endpoints are not reachable from untrusted networks (bind them to localhost or place them behind an authenticated, allow-listed proxy) and by enforcing a hard cap on message nesting depth or total message size in a pre-parser/validator ahead of the Thrift reader, rejecting oversized or over-nested payloads before they reach the recursive path - the trade-off being that legitimate deeply structured messages must be redesigned or re-encoded. As a containment measure, run the deserializing process under a watchdog or per-process memory/stack limits (e.g. reduced stack rlimit) so a recursion crash is restarted rather than taking down the broader service; this raises restart churn and can mask other faults, so it should be treated only as a stopgap. There is no vendor-released patch identified for versions other than 0.25.0, so version tracking and post-upgrade verification of the c_glib binding version are essential.

Affected VersionsENISA

Apache Thrift 0 <0.25.0

Affected Packages

euvd apache_thrift fix: 0.25.0

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

The root cause is CWE-674 (Uncontrolled Recursion) in the c_glib binding of Apache Thrift, the C-language binding that exposes Thrift's serialization/deserialization protocol and transport stack through GLib/GObject idioms. Thrift deserializers walk nested container and struct types recursively, and the c_glib reader implementation does not enforce a maximum nesting depth before recursing. An attacker who can supply serialized input to a c_glib-based Thrift service or client can therefore craft a message with deeply nested structures so that each nesting level consumes another stack frame, exhausting the thread stack and terminating the process (typically SIGSEGV). This is strictly a resource-exhaustion/denial-of-service class: the CVSS 4.0 vector shows VC:N/VI:N and VA:H with AT:P, meaning the attack is not unconditional but requires the vulnerable recursive parse path to be reachable with untrusted data. Because the defect lives in the binding's generated/reader code rather than in the wire protocol itself, other language runtimes - which use different, non-recursive or depth-guarded implementations - are unaffected.

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

Vendor (apache) PRIMARY 8.2 HIGH
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
vuln.today AI 7.5 HIGH

Remote unauthenticated attacker sends crafted nested input needing no interaction (AV:N/AC:L/PR:N/UI:N); uncontrolled recursion crashes the process so A:H, with no confidentiality or integrity impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Red Hat HIGH

Primary rating from Vendor (apache).

CVSS VectorVendor: apache

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 02, 2026 - 12:02 EUVD
CVE Published
Oct 02, 2026 - 10:49 cve.org
HIGH 8.2

DescriptionCVE.org

Uncontrolled Recursion 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

Why It Matters

Apache Thrift's C/GLib bindings before 0.25.0 can be crashed by a crafted, deeply nested message, creating a remotely reachable, unauthenticated denial-of-service risk for applications that deserialize untrusted input. The flaw affects availability only-no confidentiality or integrity loss-and no public exploit identified at time of analysis, so leadership should focus on inventorying and containing affected C/GLib deployments rather than broad incident response. Java, Python, C++, and other Thrift bindings are not impacted by this specific issue, limiting the blast radius to a narrower set of services.

Business Impact: High
Compensating Controls

Restrict network exposure of services using Apache Thrift c_glib bindings to trusted sources; enforce message depth and size limits at gateways or brokers; disable or avoid deserializing untrusted deeply nested messages in c_glib-based services; migrate to non-c_glib bindings (Java, Python, C++, or other); monitor and auto-restart crashed processes.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Medium
Thrift is widely used, but c_glib C/GLib bindings are a niche subset
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2026-91135 CRITICAL
9.2 Oct 02

Heap-based buffer overflow in the C++ THeaderTransport of Apache Thrift before 0.25.0 lets a remote, unauthenticated att

CVE-2026-83632 CRITICAL
9.2 Oct 02

Heap-based memory corruption in Apache Thrift versions before 0.25.0 lets unauthenticated remote attackers who can send

CVE-2026-86537 HIGH
8.7 Oct 02

Denial of service in Apache Thrift deployments that use the D language bindings before version 0.25.0, where malformed i

CVE-2026-94646 HIGH
8.7 Oct 02

Denial of service in the Apache Thrift Node.js bindings (all versions before 0.25.0) lets remote, unauthenticated attack

CVE-2026-93925 HIGH
8.7 Oct 02

Remote denial of service against Apache Thrift C++ deployments that use the THeaderProtocol is achievable by sending a c

CVE-2026-66081 HIGH
8.7 Oct 02

Remote, unauthenticated attackers can crash applications built against Apache Thrift's c_glib (C/GLib) language bindings

CVE-2026-66859 HIGH
8.7 Oct 02

Denial of service in Apache Thrift's c_glib (C/GLib) language bindings before 0.25.0, where a crafted or malformed messa

CVE-2026-83663 HIGH
8.7 Oct 02

Denial of service in Apache Thrift's Go bindings (all versions before 0.25.0) allows an unauthenticated remote peer to c

CVE-2026-83745 HIGH
8.7 Oct 02

Memory exhaustion in Apache Thrift's Node.js and D language WebSocket server transports (all versions before 0.25.0) let

CVE-2026-96277 HIGH
8.7 Oct 02

Uncaught exception handling in the Apache Thrift Ruby bindings lets unauthenticated remote attackers crash network-reach

CVE-2026-94658 HIGH
8.7 Oct 02

Inefficient algorithmic complexity (CWE-407) in Apache Thrift's Lua bindings prior to version 0.25.0 allows remote, unau

CVE-2026-87117 HIGH
8.7 Oct 02

Unauthenticated remote attackers can crash applications that use the Apache Thrift PHP bindings prior to version 0.25.0

Vendor StatusVendor

SUSE

Severity: Important
Product Status
openSUSE Tumbleweed Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy