Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach Thrift PHP service endpoint
-
ExploitSubmit deeply-nested crafted Thrift message
-
ExecutionTrigger uncontrolled recursion in parser
-
ImpactExhaust 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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 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
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
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.
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
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
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.
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
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
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
Same weakness CWE-674 – Uncontrolled Recursion
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
EUVD-2026-91577
GHSA-gfm5-mj86-m898
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB