Skip to main content

Apache Thrift CVE-2026-120135

| EUVDEUVD-2026-114735 HIGH
Uncontrolled Recursion (CWE-674)
8.2
CVSS 4.0 · Vendor
View

Attack ChainAIDerived

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

  1. Access
    Reach Thrift Java RPC endpoint
  2. Exploit
    Send deeply nested serialized message
  3. Execution
    Trigger unbounded recursion in TProtocolUtil.skip()
  4. Impact
    Exhaust stack and crash service

Vulnerability Assessment

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

Requires a Java service using Apache Thrift (libthrift) before 0.24.0 that deserializes attacker-reachable Thrift input and invokes TProtocolUtil.skip() on unknown/unexpected fields - this is default skipping behavior, so no special configuration is needed and no authentication is indicated (PR:N). Exploitation is limited to the Java bindings specifically, and the impact is bounded to availability (stack-exhaustion DoS) with no confidentiality or integrity effect; the endpoint must accept attacker-supplied serialized Thrift data, so services that only exchange Thrift messages between trusted internal peers face materially lower real-world exposure. The only complete fix per the advisory is upgrading to 0.24.0.

Impact

The supplied CVSS 4.0 vector (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) describes a network-reachable, low-complexity, unauthenticated flaw whose entire impact is availability (VA:H) - this is a denial-of-service through uncontrolled recursion, with no confidentiality or integrity consequence. That single-dimension impact is the key nuance: despite the high base score, a successful attack crashes a service rather than exposing data or granting code execution. The decision signals are thin and consistent with low immediate urgency: the vuln.today Decision label is 'awaiting_data', there is no CISA KEV listing, no EPSS score is provided, and no exploit/PoC reference appears in the input - so there is no public exploit identified at time of analysis and no evidence of active exploitation. The practical risk is therefore concentrated on internet-exposed or multi-tenant Java Thrift services that deserialize untrusted input; for internal-only RPC between trusted services the real-world exposure is considerably lower. Note one tension to verify: the official vector uses AT:P (an attack requirement), but the described trigger - an attacker-crafted, deeply nested serialized message - appears to be fully within attacker control against default behavior, which would argue for AT:N; confirm the intended attack requirement with the vendor advisory.

Exploit ScenarioDerived

An attacker sends a specially crafted, deeply nested serialized Thrift message to a Java service built on libthrift before 0.24.0. When the service processes unknown or unexpected fields, TProtocolUtil.skip() recurses without a default depth limit, exhausting the thread stack and crashing or hanging the service (denial of service). No public exploit code is identified in the provided sources.

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

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

Alert me

AnalysisAIv1 – Oct 31, 2026

Stack-exhaustion denial of service affects the Java bindings of Apache Thrift (org.apache.thrift:libthrift) before 0.24.0, where TProtocolUtil.skip() descends into nested container types without a default recursion depth limit. Unauthenticated remote attackers (PR:N in both the supplied CVSS 4.0 vector and the independently assessed CVSS 3.1 vector) who can get a Java Thrift service to deserialize crafted input - with unknown or unexpected fields that trigger the default skip path - can drive uncontrolled recursion until the stack is exhausted, producing a StackOverflowError; impact is confined to availability (VA:H) with no confidentiality or integrity effect. No public exploit code or PoC was identified in the supplied intelligence at time of analysis, and the vendor's only complete fix is upgrading to 0.24.0.

RemediationAI

Upgrade the Java bindings to Apache Thrift 0.24.0, which the advisory states is the fix for this issue and the only complete remediation identified; confirm the resolved org.apache.thrift:libthrift version in each service's dependency tree, since transitive resolution often pins an older release. Where upgrading cannot be completed immediately, reduce exposure by ensuring Thrift endpoints that accept serialized data are reachable only from trusted internal peers - the assessed exposure drops materially for services that exchange Thrift messages exclusively between trusted internal peers - understanding that this is a scope reduction rather than a fix and that any path accepting attacker-supplied Thrift payloads remains vulnerable to stack exhaustion. Refer to the oss-security advisory (https://seclists.org/oss-sec/2026/q4/456) and https://thrift.apache.org/ for the vendor's guidance; no workaround that removes the root cause is documented in the supplied sources, and note that exhaustion of a request-handling thread may degrade or terminate the affected service.

Affected VersionsENISA

Apache Thrift 0 <0.24.0

Affected Packages

euvd apache_thrift fix: 0.24.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 serialization and RPC framework built around an IDL that defines structs, exceptions and services; the Java runtime library (org.apache.thrift:libthrift) implements protocol readers/writers, and TProtocolUtil.skip() is the helper used to walk past fields a generated reader does not expect. Because skip() handles container types (struct, map, list, set) by recursing into their elements, deeply nested input causes stack growth proportional to nesting depth; without an enforced maximum depth, the default behavior reaches stack exhaustion and terminates the handling thread or process with a StackOverflowError. The flaw class is uncontrolled recursion (as stated in the advisory title), and the affected component is specifically the Java bindings - the CVSS 4.0 vector's AT:P indicates that specific attack requirements must be met: the target must deserialize attacker-reachable Thrift input through the vulnerable code path. No CPE strings were supplied with this record, so identification relies on the Maven coordinate and the version boundary of 0.24.0.

Know when Java 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 (CNA) 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

Unauthenticated network-reachable deserialization of a crafted nested message (AV:N/AC:L/PR:N/UI:N) causing stack-exhaustion DoS, so availability-only (A:H), no confidentiality/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

Primary rating from Vendor (CNA).

CVSS VectorVendor

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

3
Patch available
Oct 31, 2026 - 22:15 EUVD
CVSS changed
Oct 31, 2026 - 21:22 NVD
8.2 (HIGH)
CVE Published
Oct 31, 2026 - 01:44 oss-security
HIGH

Description PRE-NVD

Disclosed via oss-security. NVD scoring and full description are pending.

Executive ViewAI

Why It Matters

A high-severity availability vulnerability in Apache Thrift's Java bindings (libthrift before 0.24.0) allows unauthenticated attackers to crash Java-based Thrift services by sending specially crafted input that exhausts the stack. This affects any Java service accepting Thrift messages, potentially causing service outages and disrupting business operations. Leadership should prioritize remediation to prevent downtime and maintain service reliability.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; no public exploit code or PoC was identified at time of analysis. Interim mitigations include restricting network access to Thrift endpoints, implementing input validation to reject deeply nested or malformed messages, and monitoring for service crashes indicative of stack exhaustion.

Threat Intelligence Overview

EPSS Score
0.6%
Top 54% exploitable
Prevalence
High
widely deployed Apache RPC/serialization framework common in backend microservices
Social Media
1
Sightings
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.6%
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

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