Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain man-in-the-middle position on TLS path
-
ExploitPresent forged/invalid certificate
-
ExecutionImproper validation accepts connection
-
ImpactIntercept and tamper with Thrift RPC data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
|
| Exploitation Conditions | Exploitation requires the Apache Thrift Python bindings (before 0.25.0) to be used as a TLS client/server, and the attacker must hold an active man-in-the-middle position on the network path (reflected by AT:P and AC:H) to present a forged or invalid certificate that the improper validation logic fails to reject. It does not require authentication (PR:N) or user interaction (UI:N), but it is strictly limited to deployments that rely on Thrift's Python TLS transport for trust - systems not using TLS, or already protected by an independent certificate-pinning or network-isolation layer, are not realistically exposed. The need to first intercept the TLS connection is the key limiting factor that constrains real-world risk despite the network attack vector. |
| Impact | This is a moderate, conditional risk rather than an urgent priority. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:N) describes a network-reachable, unauthenticated flaw, but the high attack complexity (AC:H) and present attack requirements (AT:P) signal that exploitation is not trivial - it depends on the attacker first achieving a privileged man-in-the-middle position on the TLS path, consistent with a CWE-295 improper certificate validation weakness. The vector reports VC:H/VI:H (high confidentiality and integrity impact) with VA:N, matching a scenario where an interceptor can read and tamper with Thrift RPC traffic once the broken validation is abused. All signals point away from mass exploitation: the embedded Exploit Maturity is E:U (unproven/no public exploit), there is no CISA KEV listing and no POC referenced, so this is not confirmed exploited. No standalone EPSS score was provided in the input, so probabilistic exploitation likelihood could not be weighed. There is no conflict between the CVSS vector and the description - both agree on a network-position-dependent MITM weakness - but defenders should treat the base score (6.9) as realistic only where Thrift Python TLS clients/servers are exposed to untrusted network paths. |
| Exploit ScenarioDerived | An attacker positioned on the network path between two systems using the Apache Thrift Python bindings over TLS presents a forged or invalid certificate; because the bindings validate certificates improperly, the connection is accepted instead of rejected. The attacker then transparently intercepts and can modify the Thrift RPC traffic, compromising confidentiality and integrity of exchanged data. No public exploit code is referenced, and the embedded CVSS maturity (E:U) indicates exploitation remains unproven. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 02, 2026
Improper TLS certificate validation in the Apache Thrift Python bindings (all versions before 0.25.0) allows a man-in-the-middle attacker to present a forged or otherwise invalid certificate and have it accepted, breaking the confidentiality and integrity guarantees of Thrift RPC traffic. Because the flaw also returns an incorrect status code on the failed validation path, code that inspects the returned status may mistakenly treat a rejected or malicious connection as legitimate. Exploitation is conditional rather than opportunistic: the attacker must already occupy a man-in-the-middle position on the network path (AT:P, AC:H) and the victim deployment must actually rely on Thrift's Python TLS transport for trust; authentication is not required (PR:N) and no user interaction is needed (UI:N). No public exploit code and no confirmed active exploitation were identified at the time of analysis, and the independent assessment rates this as a moderate, conditional risk rather than an urgent priority.
RemediationAI
Vendor-released patch: upgrade Apache Thrift (Python bindings) to version 0.25.0, which fixes the improper certificate validation and the incorrect status-code return; confirm the upgrade for every component that embeds the Thrift Python runtime, not just the top-level application. Where an immediate upgrade is not possible, the most effective compensating control is to stop depending on Thrift's own Python TLS implementation for trust: place the RPC endpoint behind a TLS-terminating proxy or sidecar that performs correct certificate verification and hostname checking, or front the connection with an authenticated tunnel (e.g. mTLS-terminating service mesh or VPN overlay), which confines the attacker's ability to reach the Thrift transport at all. As a narrower mitigation, deployments that can tolerate it should restrict the Thrift TLS listener to a trusted network segment and enforce certificate pinning at the application layer, so that a forged certificate is rejected independently of the vulnerable library - at the cost of added operational overhead when legitimate certificates rotate. Additional detail is available in the Apache advisories at https://lists.apache.org/thread/33otcgbqd27wf6qq810q56znzbomnhg1 and https://lists.apache.org/thread/l2rgp3dqhpy2w347forzdt9g7o2d6k0d.
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 client/server stubs for many languages, including Python. Its Python bindings ship a TLS transport (historically built on Python's ssl module / pyOpenSSL) that is responsible for verifying the peer's X.509 certificate chain and hostname. CWE-295 (Improper Certificate Validation) is the root cause class here: the validation logic fails to correctly reject certificates that should not be trusted, and in addition returns the wrong status code when validation fails, so the failure signal is not propagated reliably to the caller. The practical consequence is a trust-anchor failure - a certificate that is self-signed, expired, mismatched, or issued by an untrusted CA can be accepted, and application code that gates on the returned status may be misled. Note that only the TLS-client/server-verification path is affected; plain (non-TLS) Thrift transports, and deployments whose trust decision is enforced by an independent certificate-pinning or network-isolation layer, are not realistically exposed. The correct behavior - full chain validation, hostname matching, and an accurate error status - is restored in Apache Thrift 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:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:U
AC:H and network vector because exploitation needs an attacker-controlled MITM position to abuse the broken cert validation; PR:N/UI:N as no auth or interaction is needed; C:H/I:H for interception and tampering, A:N as availability is unaffected.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
Lifecycle Timeline
2DescriptionCVE.org
Improper certificate validation, Return of wrong status code vulnerability in Apache Thrift python bindings.
This issue affects Apache Thrift: before 0.25.0.
Users are recommended to upgrade to version 0.25.0, which fixes the issue.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-91417
GHSA-3c88-xfrx-v3f7
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB