Description
JSONata is a JSON query and transformation language. Prior to 1.8.8 and 2.2.0, the src/functions.js lookup function lacked an Object.prototype.hasOwnProperty check and allowed crafted expressions to access inherited prototype members. An attacker able to supply an expression could use inherited prototype setters and getters, constructor access, valueOf, and process.getBuiltinModule to reach the child_process module and execute arbitrary code with the privileges of the host process. This issue is fixed in versions 1.8.8 and 2.2.0.
Published: 2026-08-21
Score: 9.3 Critical
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

JSONata is a JSON query and transformation language. The vulnerability resides in the lookup function, which fails to verify that accessed properties belong to the target object rather than the prototype chain. A crafted expression can read inherited properties such as setters, getters, constructors, valueOf, and process.getBuiltinModule. This flaw permits an attacker who can supply an arbitrary JSONata expression to reach the child_process module and execute code with the privileges of the host process.

Affected Systems

The jsonata-js:jsonata package is affected in all releases prior to 1.8.8 and prior to 2.2.0. Systems utilizing either older 1.x or 2.x series deployments of JSONata are vulnerable.

Risk and Exploitability

The CVSS score of 9.3 reflects a catastrophic potential impact. The absence of an EPSS score does not reduce the likelihood of exploitation. Exploitation requires that the application evaluates user-supplied or otherwise externally sourced JSONata expressions. When that condition exists, an attacker can inject a malicious expression to trigger a prototype chain traversal and gain full control of the host process. Until the vendor fix is applied, the risk remains high.

Generated by OpenCVE AI on August 21, 2026 at 22:57 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the JSONata package to the latest release (>=1.8.8 or >=2.2.0) to apply the vendor fix.
  • Review the codebase for all instances where JSONata expressions are evaluated, and ensure that only trusted, controlled input is processed.
  • If dynamic expression evaluation is not essential, disable it or replace it with a static transformation approach.

Generated by OpenCVE AI on August 21, 2026 at 22:57 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-8gq3-vp5j-2grp JSONata: Arbitrary Code Execution via crafted JSONata expressions
History

Fri, 21 Aug 2026 23:00:00 +0000

Type Values Removed Values Added
First Time appeared Jsonata-js
Jsonata-js jsonata
Vendors & Products Jsonata-js
Jsonata-js jsonata

Fri, 21 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
Description JSONata is a JSON query and transformation language. Prior to 1.8.8 and 2.2.0, the src/functions.js lookup function lacked an Object.prototype.hasOwnProperty check and allowed crafted expressions to access inherited prototype members. An attacker able to supply an expression could use inherited prototype setters and getters, constructor access, valueOf, and process.getBuiltinModule to reach the child_process module and execute arbitrary code with the privileges of the host process. This issue is fixed in versions 1.8.8 and 2.2.0.
Title JSONata: Arbitrary Code Execution via crafted JSONata expressions
Weaknesses CWE-94
References
Metrics cvssV4_0

{'score': 9.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Jsonata-js Jsonata
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-21T20:47:08.457Z

Reserved: 2026-08-20T19:55:27.024Z

Link: CVE-2026-77413

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-21T21:17:07.267

Modified: 2026-08-21T21:17:07.267

Link: CVE-2026-77413

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-21T23:00:14Z

Weaknesses
  • CWE-94

    Improper Control of Generation of Code ('Code Injection')