Skip to main content

Apache Thrift CVE-2026-86536

| EUVDEUVD-2026-91397 MEDIUM
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-10-02 apache GHSA-9fmc-g2q8-p66m
6.3
CVSS 4.0 · Vendor: apache
View

Attack ChainAIDerived

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

  1. Access
    Reach Thrift JS deserialization endpoint
  2. Delivery
    Send crafted payload with __proto__ keys
  3. Exploit
    Trigger prototype attribute modification
  4. Execution
    Corrupt shared object state
  5. Impact
    Alter application logic integrity

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V3 - Web Frontend Security Prototype pollution prevention
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an application that uses Apache Thrift's generated JavaScript bindings (versions before 0.25.0) to deserialize attacker-influenced input, so the JS code generator/runtime must be in the data path. The CVSS AT:P (attack requirements present) indicates success is not guaranteed under all configurations - it depends on the application consuming untrusted Thrift messages and on object properties being reachable for prototype manipulation. Limiting factors: only deployments using the JS bindings specifically are affected (not C++, Java, Python, etc.), the service must process externally-controlled serialized data, and impact is confined to integrity (VI:L) with no direct confidentiality or availability loss. The fix also requires re-generating JS code after upgrading to 0.25.0, so simply bumping the library version without regeneration leaves code vulnerable.

Impact

This is a medium-severity prototype pollution flaw (CWE-1321) in the JavaScript bindings of Apache Thrift, carrying a vendor-assigned CVSS 4.0 base score of 6.3. The vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N) indicates network-reachable, unauthenticated exploitation of relatively low complexity, but note the AT:P flag - the attack has specific preconditions (it is not a universal push-button exploit) - and impact is limited to integrity only (VI:L), with no confidentiality or availability impact. No EPSS score, SSVC decision, KEV listing, or POC was provided in the input; there is no public exploit identified at time of analysis and no evidence of active exploitation. The signals are internally consistent: the modest score, integrity-only impact, and required attack conditions all point to a genuine but lower-tier issue rather than a drop-everything emergency. One tension worth flagging: the 'Information Disclosure' tag conflicts with the CVSS vector, which sets VC:N (no confidentiality impact) - prototype pollution here is an integrity problem, so the disclosure framing appears inaccurate. Prioritize patching as routine hygiene for teams using the JS bindings, especially where polluted prototypes could cascade into more severe downstream behavior (e.g., DoS or logic bypass) within a given application.

Exploit ScenarioDerived

An attacker sends crafted serialized Thrift data over the network to a Node.js/JavaScript service that deserializes input using vulnerable Thrift JS bindings. Specially-named keys modify the Object prototype, corrupting application-wide object attributes and tampering with downstream logic. No public exploit code was identified, and the attack requires conditions beyond a default trivial case (CVSS AT:P).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 02, 2026

Prototype pollution in the JavaScript bindings of Apache Thrift (all versions before 0.25.0) allows unauthenticated remote attackers to corrupt object prototype attributes when an application deserializes attacker-influenced Thrift messages through generated JS code. Impact is integrity-only and limited - the vendor-assigned CVSS 4.0 base score is 6.3, while our independent CVSS 3.1 assessment rates it AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N, reflecting that exploitation requires the JS binding to be in the data path and specific object properties to be reachable. No public exploit code has been identified at time of analysis and the issue is not listed in CISA KEV; Apache has released a fix in version 0.25.0, which also requires regenerating JS code to be effective.

RemediationAI

Vendor-released patch: upgrade Apache Thrift to 0.25.0 (referenced in the advisories at https://lists.apache.org/thread/33otcgbqd27wf6qq810q56znzbomnhg1 and https://lists.apache.org/thread/xckvfky30kdnk8vqnhy0wndthvc9nymp). Critically, the vendor states that upgrading the library alone is insufficient: the generated JavaScript bindings must be re-generated with the 0.25.0 compiler, because stale generated code retains the vulnerable deserialization path - plan for a rebuild and redeploy of every JS artifact, and inventory forked or vendored copies of generated code that may escape dependency-manager upgrades. Where an immediate upgrade or regeneration cycle is not feasible, compensating controls include sanitizing or rejecting deserialized keys such as __proto__, constructor, and prototype before they reach object assignment, or parsing untrusted payloads into null-prototype objects/Map instances; the trade-off is added processing overhead and the risk of breaking legitimate messages that happen to use those field names. Because only the JS bindings are affected, moving the untrusted ingress path to a non-JS Thrift binding (for example terminating deserialization in a Java or C++ service) removes the exposure entirely, at the cost of re-architecting that service boundary. Deployments that cannot do either should restrict which network peers can submit Thrift messages to the JS-based service and monitor for unexpected prototype-related property assignments; also note the EUVD record EUVD-2026-91397 for tracking, and that no public exploit code or CISA KEV entry currently exists, so prioritization can follow standard medium-severity patch cycles rather than emergency response.

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 flaw is CWE-1321, improperly controlled modification of object prototype attributes - commonly called prototype pollution - and resides in Apache Thrift's JavaScript code generator and runtime bindings rather than in the Thrift protocol itself. Thrift is a cross-language RPC and serialization framework whose IDL compiler emits language-specific bindings; when deserializing structured messages, the JS bindings construct plain JavaScript objects from field names and values. If those keys are not filtered, attacker-supplied keys such as __proto__, constructor, or prototype can be written through to Object.prototype, altering behavior for every object in the runtime and potentially enabling downstream logic or property-injection abuse. Because only the JavaScript bindings are affected, deployments using the C++, Java, Python, Go, or other bindings are out of scope. The affected configurations are recorded under cpe:2.3:a:apache_software_foundation:apache_thrift with wildcarded version ranges, matching the EUVD entry EUVD-2026-91397 which lists Apache Thrift 0 through <0.25.0. The vendor's CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N) and our independent CVSS 3.1 vector both agree on unauthenticated network reachability (PR:N), no confidentiality or availability impact, and low integrity impact; they differ on complexity, with the AT:P attack-requirement flag acknowledging that success is configuration-dependent.

Know when Prototype Pollution 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 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.7 LOW

Network-reachable and unauthenticated (PR:N), but the AT:P preconditions map to AC:H; impact is integrity-only (I:L) with no confidentiality or availability effect.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
SUSE 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

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
Low
Vulnerable system: Availability
None
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 - 11:40 cve.org
MEDIUM 6.3

DescriptionCVE.org

Improperly controlled modification of object prototype attributes ('prototype pollution') vulnerability in Apache Thrift all JS bindings.

This issue affects Apache Thrift: before 0.25.0.

Users are recommended to upgrade to version 0.25.0 and re-generate JS code, which fixes the issue.

Threat Intelligence Overview

EPSS Score
0.5%
Top 62% exploitable
Prevalence
Medium
Widely-used RPC framework, but JS bindings are a narrower deployment 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
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.

CVE-2026-34621 HIGH POC
8.6 Apr 11

Prototype pollution in Adobe Acrobat Reader versions 24.001.30356, 26.001.21367 and earlier enables arbitrary code execu

CVE-2021-23450 CRITICAL POC
9.8 Dec 17

All versions of package dojo are vulnerable to Prototype Pollution via the setObject function. Rated critical severity (

CVE-2024-56059 CRITICAL
9.8 Dec 18

Prototype pollution in the farinspace Partners WordPress plugin (versions up to and including 0.2.0) enables remote unau

CVE-2021-23383 CRITICAL POC
9.8 May 04

The package handlebars before 4.7.7 are vulnerable to Prototype Pollution when selecting certain compiling options to co

CVE-2020-7788 CRITICAL POC
9.8 Dec 11

This affects the package ini before 1.3.6. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitabl

CVE-2020-28271 CRITICAL POC
9.8 Nov 12

Prototype pollution vulnerability in 'deephas' versions 1.0.0 through 1.0.5 allows attacker to cause a denial of service

CVE-2023-38894 CRITICAL POC
9.8 Aug 16

A Prototype Pollution issue in Cronvel Tree-kit v.0.7.4 and before allows a remote attacker to execute arbitrary code vi

CVE-2024-24292 CRITICAL POC
9.8 Mar 28

A Prototype Pollution issue in Aliconnect /sdk v.0.0.6 allows an attacker to execute arbitrary code via the aim function

CVE-2023-26121 CRITICAL POC
10.0 Apr 11

All versions of the package safe-eval are vulnerable to Prototype Pollution via the safeEval function, due to improper s

CVE-2021-23449 CRITICAL POC
10.0 Oct 18

This affects the package vm2 before 3.9.4 via a Prototype Pollution attack vector, which can lead to execution of arbitr

CVE-2024-39011 CRITICAL POC
9.8 Jul 30

Prototype Pollution in chargeover redoc v2.0.9-rc.69 allows attackers to execute arbitrary code or cause a Denial of Ser

CVE-2024-38988 CRITICAL POC
9.8 Mar 28

alizeait unflatto <= 1.0.2 was discovered to contain a prototype pollution via the method exports.unflatto at /dist/inde

Vendor StatusVendor

SUSE

Severity: Moderate

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