<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-05T16:35:05.754051+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2026-77415</id>
    <title>CVE-2026-77415 — JSONata: Arbitrary Code Execution via crafted JSONata expressions</title>
    <updated>2026-10-05T16:35:05.756318+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> jsonata-js jsonata</p>
<p>JSONata is a JSON query and transformation language. Prior to 1.8.8 and 2.2.1, crafted JSONata expressions could chain several object-integrity weaknesses to execute arbitrary code. The chain could overwrite $clone to mutate objects through evaluateTransformExpression, expose and deconstruct JSONata functions or lambdas through $merge.*, replace proc.arguments.forEach used by applyProcedure, and forge internal lambda state. These primitives allowed an attacker to reach prototype getters, prototype and constructor access, and process.getBuiltinModule with child_process, executing code with the privileges of the host process. This issue is fixed in versions 1.8.8 and 2.2.1.</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-77415"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-66mm-25pp-rfff</id>
    <title>GHSA-66mm-25pp-rfff — JSONata vulnerable to Arbitrary Code Execution via crafted JSONata expressions</title>
    <updated>2026-10-05T16:35:05.756469+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> npm: jsonata</p>
<p>Before JSONata `2.2.1` and `1.8.8` it was possible to execute arbitrary code with
crafted expressions, due to:
- overwriting `$clone` allowing mutation of objects via transforms (see
[`evaluateTransformExpression`](https://github.com/jsonata-js/jsonata/blob/8ee4476f8a228bfc7a62979ae0a9c13a4043cd03/src/jsonata.js#L1304-L1314))
- it being possible to destruct jsonata functions/lambdas (e.g. `$merge.*`)
- [applyProcedure](https://github.com/jsonata-js/jsonata/blob/8ee4476f8a228bfc7a62979ae0a9c13a4043cd03/src/jsonata.js#L1670C20-L1675)
using `proc.arguments.forEach` and not `Array.prototype.forEach`</p>
<p>Which could be chained to execute arbitrary code.</p>
<p>This was fixed with:</p>
<p>- https://github.com/jsonata-js/jsonata/pull/799
(https://github.com/jsonata-js/jsonata/pull/799/changes#diff-de23c1b6e199d0e59406a284aae5fa7be63fcbbff706829913dba73dcdeb061cL1673-R1673)
- https://github.com/jsonata-js/jsonata/pull/800
- https://github.com/jsonata-js/jsonata/pull/802</p>
<p>Which are included in the `2.2.1` release. Fixes were then back-ported to the `1.8.8` release.</p>
<p>## PoC</p>
<p>```js
import jsonata from "jsonata";</p>
<p>const expression = jsonata(`
(
    $obj := {};
    $clone := function($o) { $o };
    $m := ($merge.*)[1];</p>
<p>$fn := function($a) {
        (
            $a({"value":"lg"},"__lookupGetter__");
            $a({"value":"x"},"x");
        )
    };</p>
<p>$nop := function() { $ };</p>
<p>$capture := function($val) {
        $obj ~&gt; | $obj | {"x": 1, "y": 1, "lg":$lg} |
    };</p>
<p>$ ~&gt; | $ | $m([$…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-66mm-25pp-rfff"/>
  </entry>
</feed>
