Skip to main content

Apache Thrift EUVDEUVD-2026-91577

| CVE-2026-96289 HIGH
Uncontrolled Recursion (CWE-674)
2026-10-02 apache GHSA-gfm5-mj86-m898
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 PHP service endpoint
  2. Exploit
    Submit deeply-nested crafted Thrift message
  3. Execution
    Trigger uncontrolled recursion in parser
  4. Impact
    Exhaust stack and crash worker (DoS)

Vulnerability Assessment

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

The target application must use the Apache Thrift PHP bindings (version before 0.25.0) and must parse/deserialize attacker-controllable Thrift messages - this is the specific prerequisite reflected by the CVSS 4.0 AT:P attack-requirement flag. The attacker needs no authentication (PR:N) or user interaction (UI:N) and can reach the service over the network (AV:N), but exploitation is limited to services that accept untrusted serialized Thrift input; internal services that only process trusted, bounded data are not realistically exposed. Impact is restricted to availability (process/worker crash); there is no path to data access or code execution via this flaw.

Impact

This is a denial-of-service vulnerability (CWE-674 Uncontrolled Recursion) in the Apache Thrift PHP bindings, rated 8.2 (High) under the provided CVSS 4.0 vector AV:N/AC:L/AT:P/PR:N/UI:N with impact confined to availability (VA:H; VC:N, VI:N). The network, low-complexity, unauthenticated profile makes it remotely reachable, but the AT:P (attack requirement present) flag signals that successful exploitation depends on the target actually parsing attacker-supplied Thrift data - it is not a trivially universal trigger. No EPSS score, SSVC decision data, KEV listing, or POC reference was provided, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The impact ceiling is service disruption only - there is no code execution, data disclosure, or integrity loss per the vector. Net assessment: a credible, easily-triggered availability risk for services that deserialize untrusted Thrift messages in PHP, but not a confidentiality/integrity emergency; prioritize patching for internet-facing or multi-tenant Thrift PHP services over isolated internal ones. Note: the input Tags list 'Information Disclosure', which directly contradicts the availability-only CVSS impact (VC:N/VI:N/VA:H) - this appears to be a mislabel, and defenders should treat this as DoS, not disclosure.

Exploit ScenarioDerived

An attacker sends a maliciously crafted, deeply-nested Thrift message to a network-exposed service built on the Apache Thrift PHP bindings. The recursive parser follows the nesting without bound, exhausting the stack or available resources and crashing the PHP worker, producing a denial of service. No authentication or user interaction is required, though the target must be configured to accept and deserialize the attacker's Thrift payload. No public POC was identified at time of analysis.

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

Denial of service in the PHP bindings of Apache Thrift before 0.25.0 allows unauthenticated remote attackers to exhaust process stack space and crash the parsing worker by supplying deeply nested or self-referential serialized Thrift messages. The flaw is an uncontrolled recursion (CWE-674) in the deserialization path, rated 8.2 High under CVSS 4.0 (AV:N/AC:L/AT:P/PR:N/UI:N/VA:H, with no confidentiality or integrity impact) and 8.2-equivalent High under the assessed CVSS 3.1 vector (A:H only), confirming that impact is confined to availability. Exploitation is not unconditional: the CVSS 4.0 AT:P attack-requirement flag reflects that the target service must actually accept and deserialize attacker-controllable Thrift payloads through the PHP bindings, so internal services processing only trusted, bounded data are not realistically exposed. There is no public exploit code and no confirmed active exploitation at time of analysis, and a vendor-released fix is available in Apache Thrift 0.25.0.

RemediationAI

Vendor-released patch: upgrade Apache Thrift to 0.25.0, which the Apache advisory states fixes the issue for the PHP bindings; confirm the update through normal package tooling (Composer dependency on the apache/thrift PHP package, or the OS distribution package) and verify that no stale vendored copy of the PHP library remains in the application tree, then redeploy. Where immediate upgrade is not possible, apply specific compensating controls and accept their trade-offs: enforce a hard nesting-depth and total message-size limit at the deserialization boundary - either by wrapping the Thrift protocol reader in a validating decoder or by rejecting payloads that exceed a fixed depth before decoding, with the trade-off that legitimate deeply structured messages will be refused; terminate TLS or HTTP in a reverse proxy that caps request body size and connection duration, understanding that this only bounds payload volume and does not prevent a compact deeply nested structure from triggering recursion; and run PHP-FPM workers under strict memory_limit, low pm.max_requests, and process supervision so a crashed worker is recycled rather than cascading to the parent service, at the cost of reduced throughput and repeated cold starts under sustained abuse. Restricting the Thrift listener to trusted network segments or mutual-TLS clients removes the untrusted-input path entirely and is the strongest mitigation when the PHP bindings cannot be patched promptly, with the trade-off of breaking legitimate external clients. The vendor advisories at https://lists.apache.org/thread/33otcgbqd27wf6qq810q56znzbomnhg1 and https://lists.apache.org/thread/kv1zkwlt82lkkv20g29txr5pjnvo0pf8 should be monitored for any further guidance.

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

Apache Thrift is a cross-language RPC and serialization framework whose IDL-generated codecs deserialize compact/binary protocol messages into language-native objects. The PHP bindings implement that codec in PHP, where recursive decoding of nested structs, lists, maps, or sets is performed by re-entrant function calls without an enforced maximum nesting depth or recursion counter. Because CWE-674 (Uncontrolled Recursion) describes exactly this pattern - unbounded self-referential processing driven by attacker-influenced input - a payload with sufficiently deep (or cyclic-by-structure) nesting drives the PHP call stack until the memory or stack limit is hit, terminating the worker or process. The CPE cpe:2.3:a:apache_software_foundation:apache_thrift:*:*:*:*:*:*:*:* captures all releases prior to 0.25.0, but the defect is binding-specific: the advisory scopes it to the PHP bindings, so other language runtimes for the same version range are not necessarily affected in the same way. The absence of confidentiality or integrity metrics (VC:N, VI:N, SC:N, SI:N) is consistent with a pure resource-exhaustion primitive - there is no memory-corruption or injection path to data disclosure or code execution described by this flaw.

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 (AV:N/AC:L/PR:N/UI:N); uncontrolled recursion yields only a crash, so C:N/I:N/A:H.

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:P/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

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 - 13:02 EUVD
CVE Published
Oct 02, 2026 - 12:07 cve.org
HIGH 8.2

DescriptionCVE.org

Uncontrolled Recursion vulnerability in Apache Thrift PHP 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 PHP bindings before 0.25.0 contain an uncontrolled recursion vulnerability that allows unauthenticated remote attackers to crash parsing workers by sending deeply nested or self-referential serialized messages, causing a denial of service. Organizations running PHP-based Thrift services that accept attacker-controllable payloads face potential service disruptions, while services processing only trusted, bounded data are not realistically exposed. Leadership should ensure exposed or business-critical Thrift endpoints are prioritized for mitigation.

Business Impact: High
Compensating Controls

Restrict network access to trusted clients; enforce message size and nesting-depth limits; validate serialized input against a bounded schema; disable PHP Thrift bindings where not required; monitor parsing workers for crashes.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Medium
popular Apache RPC framework, but PHP binding is a narrower 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