Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-reachable with no authentication or user interaction; integrity impact limited to low as direct prototype pollution does not guarantee full system write without application-layer escalation.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
2DescriptionCVE.org
A weakness has been identified in jsonata-js jsonata up to 2.2.0. The affected element is the function createFrame of the file src/jsonata.js of the component Function Binding Frame System. This manipulation causes improperly controlled modification of object prototype attributes. It is possible to initiate the attack remotely. The exploit has been made available to the public and could be used for attacks. The vendor was contacted early about this disclosure but did not respond in any way.
AnalysisAI
Prototype pollution in jsonata-js (all versions up to 2.2.0) allows remote unauthenticated attackers to inject arbitrary properties into JavaScript's Object.prototype via the createFrame function in src/jsonata.js. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) with exploitation status E:P confirms this is network-exploitable with zero prerequisites, and a public proof-of-concept has been published on GitHub demonstrating a hasOwnProperty guard bypass. No patch exists - the vendor failed to respond to coordinated disclosure - leaving all users of jsonata ≤ 2.2.0 indefinitely exposed.
Technical ContextAI
jsonata is a lightweight query and transformation language for JSON data, widely embedded in Node.js applications and integration platforms. The vulnerable component is the Function Binding Frame System, specifically the createFrame function in src/jsonata.js, which manages variable and function scoping during expression evaluation. CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes) arises when user-controlled keys - such as __proto__, constructor, or prototype - are used to set properties on plain JavaScript objects without sanitizing these reserved names first. The proof-of-concept is named 'jsonata-hasownproperty-bypass', indicating that the library's existing guard uses hasOwnProperty in a way that can be circumvented, defeating a common first-line prototype-pollution defense. Once Object.prototype is polluted, every object in the Node.js runtime inherits the injected properties, which can cascade into authentication bypasses, privilege escalations, or code injection in application logic that trusts prototype-inherited values. CPE cpe:2.3:a:jsonata-js:jsonata:*:*:*:*:*:*:*:* covers the full affected range.
RemediationAI
No vendor-released patch has been identified at time of analysis - the vendor did not respond to coordinated disclosure and no fixed version of jsonata has been confirmed. Organizations should implement the following specific compensating controls while awaiting a patch: First, audit all application code paths where user-controlled data influences keys or variable names passed into jsonata expressions evaluated by createFrame, and sanitize input by rejecting or stripping keys matching __proto__, constructor, and prototype at application ingress boundaries. Second, apply Object.freeze(Object.prototype) at Node.js process startup to prevent runtime prototype modification; note this may break libraries that legitimately set properties on Object.prototype, so thorough regression testing is required. Third, if jsonata evaluation of user-supplied content is architecturally necessary, isolate it in a dedicated child process or worker thread with a frozen prototype environment so that any successful pollution is contained to a sandboxed scope. Fourth, pin the jsonata package and monitor the jsonata-js GitHub repository and VulDB entry (https://vuldb.com/vuln/370850) for a patched release. The exploit POC is publicly available at https://github.com/OriginSecurityX/jsonata-hasownproperty-bypass and can be used to validate whether any applied mitigations are effective.
More in Prototype Pollution
View allPrototype pollution in Adobe Acrobat Reader versions 24.001.30356, 26.001.21367 and earlier enables arbitrary code execu
Prototype pollution in the farinspace Partners WordPress plugin (versions up to and including 0.2.0) enables remote unau
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
A vulnerability exists in the 'dagre-d3-es' Node.js package version 7.0.9, specifically within the 'bk' module's addConf
A Prototype Pollution vulnerability in the util-deps.addFileDepend function of magix-combine-ex versions thru 1.2.10 all
Chartist 1.x through 1.3.0 allows Prototype Pollution via the extend function. Rated critical severity (CVSS 9.8), this
Same technique Information Disclosure
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-36682
GHSA-663r-x48j-fg8p