Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach Thrift JS deserialization endpoint
-
DeliverySend crafted payload with __proto__ keys
-
ExploitTrigger prototype attribute modification
-
ExecutionCorrupt shared object state
-
ImpactAlter 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). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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
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
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.
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
Lifecycle Timeline
2DescriptionCVE.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
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 Prototype Pollution
View allPrototype pollution in Adobe Acrobat Reader versions 24.001.30356, 26.001.21367 and earlier enables arbitrary code execu
All versions of package dojo are vulnerable to Prototype Pollution via the setObject function. Rated critical severity (
Prototype pollution in the farinspace Partners WordPress plugin (versions up to and including 0.2.0) enables remote unau
The package handlebars before 4.7.7 are vulnerable to Prototype Pollution when selecting certain compiling options to co
This affects the package ini before 1.3.6. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitabl
Prototype pollution vulnerability in 'deephas' versions 1.0.0 through 1.0.5 allows attacker to cause a denial of service
A Prototype Pollution issue in Cronvel Tree-kit v.0.7.4 and before allows a remote attacker to execute arbitrary code vi
A Prototype Pollution issue in Aliconnect /sdk v.0.0.6 allows an attacker to execute arbitrary code via the aim function
All versions of the package safe-eval are vulnerable to Prototype Pollution via the safeEval function, due to improper s
This affects the package vm2 before 3.9.4 via a Prototype Pollution attack vector, which can lead to execution of arbitr
Prototype Pollution in chargeover redoc v2.0.9-rc.69 allows attackers to execute arbitrary code or cause a Denial of Ser
alizeait unflatto <= 1.0.2 was discovered to contain a prototype pollution via the method exports.unflatto at /dist/inde
EUVD-2026-91397
GHSA-9fmc-g2q8-p66m
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB