MEDIUM 5.3

CVE-2026-12208: Prototype Pollution in jsonata-js Library—Exploitation and Remediation Guide

A prototype pollution vulnerability exists in jsonata-js (jsonata library) versions up to 2.2.0. The vulnerability is in the createFrame function within the Function Binding Frame System, allowing attackers to remotely modify object prototype attributes. An exploit has been publicly disclosed, increasing the risk of widespread exploitation. The vendor has not responded to early disclosure attempts.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.3 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Weaknesses (CWE)
CWE-1321, CWE-94
Affected products
0 configuration(s)
Published / Modified
2026-06-15 / 2026-06-17

NVD description (verbatim)

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.

5 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-12208 is a prototype pollution vulnerability (CWE-1321, CWE-94) in jsonata up to version 2.2.0. The createFrame function in src/jsonata.js improperly controls modification of object prototype attributes, permitting attackers to inject malicious properties into JavaScript object prototypes. This is a network-accessible flaw requiring no authentication or user interaction. The attack surface is broad: any application using vulnerable versions of jsonata to process untrusted data is at risk. Public exploit availability increases the likelihood of real-world attacks.

Business impact

Organizations relying on jsonata for data transformation, particularly in API gateways, serverless functions, or middleware that processes user-supplied expressions or data, face immediate risk. A successful prototype pollution attack can lead to unauthorized modification of application behavior, potential privilege escalation, or denial of service depending on how the affected code is integrated. While the CVSS score reflects integrity impact as primary, the downstream consequences could be severe if jsonata is used in security-critical data processing pipelines.

Affected systems

Any application or service using jsonata (jsonata-js) library versions 2.2.0 and earlier is vulnerable. This includes Node.js applications, serverless functions, and server-side JavaScript environments where jsonata is imported. Organizations should audit their dependency trees to identify direct and transitive use of jsonata. No specific vendor products are enumerated in available advisories; vulnerability scope is limited to the jsonata library itself.

Exploitability

Exploitability is high. The vulnerability requires only network access (AV:N), low attack complexity (AC:L), no privileges (PR:N), and no user interaction (UI:N). A public exploit has been released, removing the barrier to weaponization. Remote attackers can trigger the prototype pollution through crafted payloads sent to any application processing untrusted jsonata expressions or data. Active exploitation is considered probable given public disclosure and ease of attack.

Remediation

Upgrade jsonata to a version newer than 2.2.0 that includes a fix for the prototype pollution vulnerability. Verify the fix in the vendor's release notes or advisory. If immediate patching is not possible, consider disabling jsonata functionality or restricting its use to trusted input sources only. Implement input validation and sanitization for any user-supplied jsonata expressions. Deploy network segmentation to limit exposure of applications using vulnerable jsonata versions.

Patch guidance

Check the jsonata project repository (typically on GitHub or npm) for releases published after 2026-06-15 that address this vulnerability. Upgrade using your package manager (e.g., npm update jsonata) to the patched version. Verify against the vendor's official advisory or release notes before deploying to production. Test thoroughly in a staging environment to ensure compatibility with your application. Monitor for any related security notices from the maintainers, as the vendor's initial lack of response may indicate delayed patch availability.

Detection guidance

Search application and infrastructure logs for jsonata expressions or function calls with unusual prototype manipulation patterns (e.g., references to __proto__, constructor, or prototype). Monitor npm/package manager audit tools for CVE-2026-12208 flagging within your dependency tree. Implement static code analysis to identify all imports and uses of jsonata. Network detection can focus on anomalous data payloads sent to applications known to use jsonata, though prototype pollution attacks may be difficult to distinguish from legitimate traffic without deep inspection.

Why prioritize this

Although the CVSS score is MEDIUM (5.3), prioritization should be elevated due to public exploit availability, ease of exploitation (no authentication required), and the potential for widespread impact across the JavaScript ecosystem. Organizations with jsonata in their supply chain should treat this as HIGH priority for patching or mitigation. The lack of vendor response indicates limited immediate support; self-remediation is essential.

Risk score, explained

The CVSS:3.1 score of 5.3 reflects a network-accessible, low-complexity attack with no authentication barriers, causing integrity impacts (object property modification) but without confidentiality or availability loss in isolation. However, the public exploit and unresponsive vendor increase practical risk beyond the base score. Prototype pollution can be chained with other logic to achieve severe outcomes; context-dependent risk assessment is necessary for applications using jsonata in sensitive workflows.

Frequently asked questions

What exactly is prototype pollution and why is it dangerous?

Prototype pollution is a technique that modifies JavaScript object prototypes, affecting all objects derived from those prototypes. In this vulnerability, attackers can inject malicious properties into object prototypes through jsonata's createFrame function. This can alter application behavior globally, bypass security checks, enable privilege escalation, or cause unexpected denial of service. The danger stems from the silent, pervasive nature of the modification.

Do I need to update if I only use jsonata for parsing static configuration files?

If jsonata only processes trusted, static configuration files and never evaluates untrusted user input or expressions, your risk is lower. However, the safest approach is still to upgrade, as even seemingly static contexts can be compromised during supply chain attacks or misconfiguration. Confirm that jsonata is not processing any user-supplied data before deferring patching.

The vendor hasn't responded—does that mean there's no fix available?

The lack of vendor response as of the disclosure date does not necessarily mean a fix will never be released. Check the jsonata project repository directly (GitHub, npm) for newer releases that may address this vulnerability, especially those published after 2026-06-15. Some open-source projects release patches without formal vendor acknowledgment. If no fix is available and you cannot upgrade, implement strict input validation and consider alternative libraries.

How can I detect if this vulnerability is being exploited in my environment?

Look for suspicious jsonata expressions or payloads containing prototype-related keywords (__proto__, constructor.prototype, etc.) in application logs and network traffic. Run npm audit on your dependencies to flag CVE-2026-12208. Use static analysis tools to inventory jsonata usage. Monitor for unexpected changes in application behavior or property values on objects that should be immutable. However, sophisticated attacks may be difficult to detect without deep inspection of jsonata evaluation contexts.

This analysis is based on publicly available information as of 2026-06-17. Patch version numbers and vendor responses were not provided in the disclosure data; verify all remediation guidance against the official jsonata project repository and vendor advisories. No exploit code or weaponization techniques are provided in this analysis. Organizations should conduct their own risk assessments based on their specific use of jsonata and threat landscape. This document does not constitute professional security advice; engage qualified security professionals for incident response or compliance matters. Source: NVD (public-domain), retrieved 2026-07-20. Analysis generated by SEC.co (claude-haiku-4-5).