<?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>Thu, 08 Oct 2026 23:50:00 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-106445</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-106445</link>
      <description>&lt;p&gt;Handlebars provides the power necessary to let users build semantic templates. From 4.0.0 until 4.7.10, Handlebars lookupProperty returns Function.prototype.constructor before applying the prototype-access deny list because constructor is an own property of Function.prototype. When an attacker can render a controlled template with allowProtoMethodsByDefault enabled and an accessible function in the template context, the template can traverse from that function through its prototype to Function.prototype and then obtain the Function constructor through the own-property bypass. This permits attacker-controlled JavaScript to execute with the server application&amp;#39;s privileges. This issue is fixed in version 4.7.10.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Handlebars provides the power necessary to let users build semantic templates. From 4.0.0 until 4.7.10, Handlebars lookupProperty returns Function.prototype.constructor before applying the prototype-access deny list because constructor is an own property of Function.prototype. When an attacker can render a controlled template with allowProtoMethodsByDefault enabled and an accessible function in the template context, the template can traverse from that function through its prototype to Function.prototype and then obtain the Function constructor through the own-property bypass. This permits attacker-controlled JavaScript to execute with the server application&amp;#39;s privileges. This issue is fixed in version 4.7.10.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-106445</guid>
    </item>
    <item>
      <title>GHSA-p8wg-vrv2-v86f — Handlebars: JavaScript Injection via Own Property Check Bypass</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-p8wg-vrv2-v86f</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: handlebars&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;Handlebars can expose the `Function` constructor despite its prototype-access deny list. When a template reaches `Function.prototype`, its own `constructor` property is returned before the deny list is checked. An attacker who can render a controlled template with `allowProtoMethodsByDefault: true` can inject and execute arbitrary JavaScript, leading to Remote Code Execution on the server.&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;`lookupProperty` trusts own properties:&lt;/p&gt;
&lt;p&gt;```js
if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
  return result;
}
```&lt;/p&gt;
&lt;p&gt;Normally, prototype-derived values reach `resultIsAllowed`, which blocks dangerous method names such as `constructor`. However, `constructor` is itself an own property of prototype objects:&lt;/p&gt;
&lt;p&gt;```js
Function.prototype.constructor === Function;
String.prototype.constructor === String;
Object.prototype.constructor === Object;
```&lt;/p&gt;
&lt;p&gt;As a result, once a template reaches `Function.prototype`, looking up `constructor` returns `Function` without consulting the deny list.&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;An attacker needs to reach any prototype object where constructor is an own property, then access constructor to obtain Function. The shortest path requires only an accessible function in the template context:&lt;/p&gt;
&lt;p&gt;1. Access a function&amp;#39;s prototype: {{lookup myFunction &amp;#34;proto&amp;#34;}} resolves to Function.prototype. The proto property is not in the deny list and is permitted when allowProtoMethodsByDefault is true (since the result is a function).
2. Access c…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: handlebars&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;Handlebars can expose the `Function` constructor despite its prototype-access deny list. When a template reaches `Function.prototype`, its own `constructor` property is returned before the deny list is checked. An attacker who can render a controlled template with `allowProtoMethodsByDefault: true` can inject and execute arbitrary JavaScript, leading to Remote Code Execution on the server.&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;`lookupProperty` trusts own properties:&lt;/p&gt;
&lt;p&gt;```js
if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
  return result;
}
```&lt;/p&gt;
&lt;p&gt;Normally, prototype-derived values reach `resultIsAllowed`, which blocks dangerous method names such as `constructor`. However, `constructor` is itself an own property of prototype objects:&lt;/p&gt;
&lt;p&gt;```js
Function.prototype.constructor === Function;
String.prototype.constructor === String;
Object.prototype.constructor === Object;
```&lt;/p&gt;
&lt;p&gt;As a result, once a template reaches `Function.prototype`, looking up `constructor` returns `Function` without consulting the deny list.&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;An attacker needs to reach any prototype object where constructor is an own property, then access constructor to obtain Function. The shortest path requires only an accessible function in the template context:&lt;/p&gt;
&lt;p&gt;1. Access a function&amp;#39;s prototype: {{lookup myFunction &amp;#34;proto&amp;#34;}} resolves to Function.prototype. The proto property is not in the deny list and is permitted when allowProtoMethodsByDefault is true (since the result is a function).
2. Access c…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-p8wg-vrv2-v86f</guid>
    </item>
    <item>
      <title>UBUNTU-CVE-2026-106445</title>
      <link>https://vulnerability.circl.lu/vuln/ubuntu-cve-2026-106445</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Ubuntu:18.04:LTS: node-handlebars, Ubuntu:20.04:LTS: node-handlebars, Ubuntu:22.04:LTS: node-handlebars, Ubuntu:24.04:LTS: node-handlebars, Ubuntu:26.04:LTS: node-handlebars&lt;/p&gt;
&lt;p&gt;(Handlebars provides the power necessary to let users build semantic te ...)&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Ubuntu:18.04:LTS: node-handlebars, Ubuntu:20.04:LTS: node-handlebars, Ubuntu:22.04:LTS: node-handlebars, Ubuntu:24.04:LTS: node-handlebars, Ubuntu:26.04:LTS: node-handlebars&lt;/p&gt;
&lt;p&gt;(Handlebars provides the power necessary to let users build semantic te ...)&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ubuntu-cve-2026-106445</guid>
    </item>
  </channel>
</rss>
