DEV Community

CVE Reports
CVE Reports

Posted on Originally published at cvereports.com

CVE-2026-77414: CVE-2026-77414: Critical Sandbox Escape and Remote Code Execution in JSONata via Prototype Pollution

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)) {
Enter fullscreen mode Exit fullscreen mode

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

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:

  1. Identify all uses of the jsonata package in package.json and lockfiles.
  2. For JSONata 1.x, update the package dependency to version 1.8.8.
  3. For JSONata 2.x, update the package dependency to version 2.2.1.
  4. Run npm install or yarn install to apply the updates.
  5. Verify deployment using automated security scans or unit tests simulating the prototype traversal payload.

References


Read the full report for CVE-2026-77414 on our website for more details including interactive diagrams and full exploit analysis.

Top comments (0)