CVE-2026-77414: Critical Sandbox Escape and Remote Code Execution in JSONata via Prototype Pollution
Vulnerability ID: CVE-2026-77414
CVSS Score: 9.3
Published: 2026-08-21
CVE-2026-77414 (GHSA-2943-5xfg-gq5f) is a critical sandbox escape and remote code execution vulnerability in the JSONata package. When JSONata processes untrusted expressions, it uses a vulnerable environment lookup check that can be shadowed by user-defined variables. Attackers can leverage this to traverse the prototype chain, reach the global Function constructor, and execute arbitrary system commands on the host machine.
TL;DR
A critical vulnerability in JSONata permits attackers to bypass query sandbox isolation and achieve remote code execution by shadowing local lookup methods and traversing the prototype chain.
⚠️ Exploit Status: POC
Technical Details
- CWE ID: CWE-94
- Attack Vector: Network
- CVSS v4.0: 9.3 (Critical)
- Impact: Remote Code Execution (RCE) / Sandbox Escape
- Exploit Status: Proof-of-Concept
- KEV Status: Not Listed
Affected Systems
- JSONata npm package versions < 1.8.8 and >= 2.0.0 < 2.2.1
- Node.js applications evaluating arbitrary or untrusted user-supplied JSONata query expressions
-
jsonata: < 1.8.8 (Fixed in:
1.8.8) -
jsonata: >= 2.0.0 < 2.2.1 (Fixed in:
2.2.1)
Code Analysis
Commit: 59e2514
Use Object.create(null) for frame bindings and safe Object.prototype.hasOwnProperty.call checks to avoid scope lookup shadowing.
@@ -1855,14 +1855,14 @@
- var bindings = {};
+ var bindings = Object.create(null);
@@ -1865,3 +1865,3 @@
- if(bindings.hasOwnProperty(name)) {
+ if(Object.prototype.hasOwnProperty.call(bindings, name)) {
Commit: 47c0e58
Restrict wildcard operations on function objects to protect internal function contexts.
Commit: 06fc08c
Release v2.2.1 containing complete remediation controls and backported fixes.
Exploit Details
- GitHub Advisory GHSA-2943-5xfg-gq5f: Vulnerability disclosure advisory containing step-by-step verification steps and context details.
Mitigation Strategies
- Upgrade JSONata library dependency to secure releases.
- Isolate expression evaluation inside low-privilege sandboxes (e.g., gVisor, Firecracker).
- Sanitize or reject expressions that contain dynamic property shadow mappings.
Remediation Steps:
- Identify all uses of the jsonata package in package.json and lockfiles.
- For JSONata 1.x, update the package dependency to version 1.8.8.
- For JSONata 2.x, update the package dependency to version 2.2.1.
- Run npm install or yarn install to apply the updates.
- Verify deployment using automated security scans or unit tests simulating the prototype traversal payload.
References
- JSONata Security Advisory GHSA-2943-5xfg-gq5f
- JSONata Pull Request #799 - Mitigate Prototype Pollution and Sandbox Traversal
- JSONata Fix Commit 59e2514
- JSONata Release Commit v2.2.1
- JSONata Release Announcement v1.8.8
- JSONata Release Announcement v2.2.1
Read the full report for CVE-2026-77414 on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)