<?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://cve.radiocsirt.org</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>Sat, 10 Oct 2026 05:04:50 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-352533</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-352533</link>
      <description>EUVD-2026-352533</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-352533</guid>
    </item>
    <item>
      <title>fkie_cve-2026-73649</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-73649</link>
      <description>&lt;p&gt;Velocity.js is a JavaScript implementation of the Apache Velocity template engine. Prior to 2.1.7, the earlier fix for CVE-2026-44966 filtered constructor, __proto__, and prototype only in the #set assignment handler in src/compile/set.ts, while property-read expressions in src/compile/references.ts remained unfiltered. The getReferences() flow called getAttributes(), whose property access allowed an attacker-controlled template to traverse constructor.constructor to the JavaScript Function constructor. The #set handler validated only the assignment target and did not inspect the right-hand property-read expression, allowing arbitrary shell commands, environment-variable access, cloud-credential access, and internal-network access in the server process. This issue is fixed in version 2.1.7.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Velocity.js is a JavaScript implementation of the Apache Velocity template engine. Prior to 2.1.7, the earlier fix for CVE-2026-44966 filtered constructor, __proto__, and prototype only in the #set assignment handler in src/compile/set.ts, while property-read expressions in src/compile/references.ts remained unfiltered. The getReferences() flow called getAttributes(), whose property access allowed an attacker-controlled template to traverse constructor.constructor to the JavaScript Function constructor. The #set handler validated only the assignment target and did not inspect the right-hand property-read expression, allowing arbitrary shell commands, environment-variable access, cloud-credential access, and internal-network access in the server process. This issue is fixed in version 2.1.7.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-73649</guid>
    </item>
    <item>
      <title>GHSA-7gfh-x38p-prh3 — Velocity.js: Remote Code Execution via property-read to Function constructor (bypass of GHSA-j658-c2gf-x6pq fix)</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-7gfh-x38p-prh3</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: velocityjs&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Remote Code Execution (RCE) in velocityjs v2.1.6 via property-read to the Function constructor. This bypasses the fix for GHSA-j658-c2gf-x6pq (&amp;#34;Prototype Pollution in #set path assignment&amp;#34;) — that advisory blocked constructor/__proto__/prototype only in the #set assignment handler (set.cjs), but property read expressions are unfiltered. Any application rendering attacker-controlled Velocity templates is vulnerable to arbitrary code execution on the server.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;GHSA-j658-c2gf-x6pq added isBlockedPathKey() to dist/cjs/compile/set.cjs:35-43, which blocks __proto__, constructor, and prototype keys. However, this check only runs when the #set directive assigns a value — it validates the assignment target path, not the value expression being evaluated.
The value expression is evaluated via getReferences() in dist/cjs/compile/references.cjs:16, which calls getAttributes() at line 81. The property access at line 88-89 has no filtering:
// references.cjs:81-91
getAttributes(property, baseRef, ast) {
  if (property.type === &amp;#34;property&amp;#34;) {
    return baseRef[property.id];  // ← NO BLOCK on &amp;#34;constructor&amp;#34;, &amp;#34;prototype&amp;#34;, etc.
  }
  ...
}
Meanwhile, set.cjs:35-43 properly blocks these keys, but only for the #set target:
// set.cjs:35-43
isBlockedPathKey(baseRef, key, isEnd) {
  if (key === PROTO_KEY) return true;          // &amp;#34;__proto__&amp;#34;
  if (key === &amp;#34;prototype&amp;#34; &amp;amp;&amp;amp; typeof baseRef === &amp;#34;function&amp;#34;) return true;
  return !isEnd &amp;amp;&amp;amp; PROTOTYPE_CHAIN_KEYS.has(key) &amp;amp;&amp;amp; !hasOwnPr…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: velocityjs&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Remote Code Execution (RCE) in velocityjs v2.1.6 via property-read to the Function constructor. This bypasses the fix for GHSA-j658-c2gf-x6pq (&amp;#34;Prototype Pollution in #set path assignment&amp;#34;) — that advisory blocked constructor/__proto__/prototype only in the #set assignment handler (set.cjs), but property read expressions are unfiltered. Any application rendering attacker-controlled Velocity templates is vulnerable to arbitrary code execution on the server.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;GHSA-j658-c2gf-x6pq added isBlockedPathKey() to dist/cjs/compile/set.cjs:35-43, which blocks __proto__, constructor, and prototype keys. However, this check only runs when the #set directive assigns a value — it validates the assignment target path, not the value expression being evaluated.
The value expression is evaluated via getReferences() in dist/cjs/compile/references.cjs:16, which calls getAttributes() at line 81. The property access at line 88-89 has no filtering:
// references.cjs:81-91
getAttributes(property, baseRef, ast) {
  if (property.type === &amp;#34;property&amp;#34;) {
    return baseRef[property.id];  // ← NO BLOCK on &amp;#34;constructor&amp;#34;, &amp;#34;prototype&amp;#34;, etc.
  }
  ...
}
Meanwhile, set.cjs:35-43 properly blocks these keys, but only for the #set target:
// set.cjs:35-43
isBlockedPathKey(baseRef, key, isEnd) {
  if (key === PROTO_KEY) return true;          // &amp;#34;__proto__&amp;#34;
  if (key === &amp;#34;prototype&amp;#34; &amp;amp;&amp;amp; typeof baseRef === &amp;#34;function&amp;#34;) return true;
  return !isEnd &amp;amp;&amp;amp; PROTOTYPE_CHAIN_KEYS.has(key) &amp;amp;&amp;amp; !hasOwnPr…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-7gfh-x38p-prh3</guid>
    </item>
  </channel>
</rss>
