<?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>Mon, 02 Nov 2026 02:30:25 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-116674</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-116674</link>
      <description>&lt;p&gt;systeminformation is a System and OS information library for node.js. Prior to 5.33.13, networkStats(ifaces) in lib/network.js on FreeBSD, OpenBSD, and NetBSD stores per-interface data in the plain-object _network cache and indexes it with the sanitized caller-controlled interface name. Passing proto causes the inherited Object.prototype value to be used instead of creating an own cache entry, so calcNetworkSpeed() writes rx_bytes, tx_bytes, rx_sec, tx_sec, ms, last_ms, and operstate onto Object.prototype. The polluted property names are fixed and their values come from interface statistics, but inherited-name collisions and enumerable keys can corrupt application branching, serialization, configuration merging, validation, or lookup behavior. This issue is fixed in version 5.33.13.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;systeminformation is a System and OS information library for node.js. Prior to 5.33.13, networkStats(ifaces) in lib/network.js on FreeBSD, OpenBSD, and NetBSD stores per-interface data in the plain-object _network cache and indexes it with the sanitized caller-controlled interface name. Passing proto causes the inherited Object.prototype value to be used instead of creating an own cache entry, so calcNetworkSpeed() writes rx_bytes, tx_bytes, rx_sec, tx_sec, ms, last_ms, and operstate onto Object.prototype. The polluted property names are fixed and their values come from interface statistics, but inherited-name collisions and enumerable keys can corrupt application branching, serialization, configuration merging, validation, or lookup behavior. This issue is fixed in version 5.33.13.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-116674</guid>
    </item>
    <item>
      <title>GHSA-7648-jmwf-vw7j — systeminformation has prototype pollution in `networkStats()` via the interface name</title>
      <link>https://db.gcve.eu/vuln/ghsa-7648-jmwf-vw7j</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: systeminformation&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`networkStats()` keeps a per interface cache for computing `rx_sec` / `tx_sec` between calls.
The cache is a plain JavaScript object and is indexed with the interface name the caller
supplied. Passing the name `__proto__` makes every cache write land on `Object.prototype`
instead of the cache, polluting every object in the Node.js process.&lt;/p&gt;
&lt;p&gt;An application is affected if it passes untrusted input as the `ifaces` argument of
`si.networkStats()` and runs on FreeBSD, OpenBSD or NetBSD.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;### The vulnerable code&lt;/p&gt;
&lt;p&gt;`lib/network.js` declares the cache as a plain object:&lt;/p&gt;
&lt;p&gt;```js
const _network = {};
```&lt;/p&gt;
&lt;p&gt;`calcNetworkSpeed()` writes into it, keyed by the interface name:&lt;/p&gt;
&lt;p&gt;```js
} else {
  if (!_network[iface]) {
    _network[iface] = {};
  }
  _network[iface].rx_bytes  = rx_bytes;
  _network[iface].tx_bytes  = tx_bytes;
  _network[iface].rx_sec    = null;
  _network[iface].tx_sec    = null;
  _network[iface].ms        = Date.now();
  _network[iface].last_ms   = 0;
  _network[iface].operstate = operstate;
}
```&lt;/p&gt;
&lt;p&gt;With `iface === &amp;#39;__proto__&amp;#39;` this misbehaves twice:&lt;/p&gt;
&lt;p&gt;1. `_network[&amp;#39;__proto__&amp;#39;]` does not read a missing own property — it invokes the inherited
   `__proto__` getter and returns `Object.prototype`, which is truthy. The
   `if (!_network[iface])` guard therefore never creates the `{}` placeholder.
2. Each following assignment writes onto `Object.prototype`.&lt;/p&gt;
&lt;p&gt;After one call, `rx_bytes`, `tx_bytes`, `rx_sec`, `tx_sec`, `ms`, `last_ms` and `operstate`
are visib…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: systeminformation&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`networkStats()` keeps a per interface cache for computing `rx_sec` / `tx_sec` between calls.
The cache is a plain JavaScript object and is indexed with the interface name the caller
supplied. Passing the name `__proto__` makes every cache write land on `Object.prototype`
instead of the cache, polluting every object in the Node.js process.&lt;/p&gt;
&lt;p&gt;An application is affected if it passes untrusted input as the `ifaces` argument of
`si.networkStats()` and runs on FreeBSD, OpenBSD or NetBSD.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;### The vulnerable code&lt;/p&gt;
&lt;p&gt;`lib/network.js` declares the cache as a plain object:&lt;/p&gt;
&lt;p&gt;```js
const _network = {};
```&lt;/p&gt;
&lt;p&gt;`calcNetworkSpeed()` writes into it, keyed by the interface name:&lt;/p&gt;
&lt;p&gt;```js
} else {
  if (!_network[iface]) {
    _network[iface] = {};
  }
  _network[iface].rx_bytes  = rx_bytes;
  _network[iface].tx_bytes  = tx_bytes;
  _network[iface].rx_sec    = null;
  _network[iface].tx_sec    = null;
  _network[iface].ms        = Date.now();
  _network[iface].last_ms   = 0;
  _network[iface].operstate = operstate;
}
```&lt;/p&gt;
&lt;p&gt;With `iface === &amp;#39;__proto__&amp;#39;` this misbehaves twice:&lt;/p&gt;
&lt;p&gt;1. `_network[&amp;#39;__proto__&amp;#39;]` does not read a missing own property — it invokes the inherited
   `__proto__` getter and returns `Object.prototype`, which is truthy. The
   `if (!_network[iface])` guard therefore never creates the `{}` placeholder.
2. Each following assignment writes onto `Object.prototype`.&lt;/p&gt;
&lt;p&gt;After one call, `rx_bytes`, `tx_bytes`, `rx_sec`, `tx_sec`, `ms`, `last_ms` and `operstate`
are visib…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-7648-jmwf-vw7j</guid>
    </item>
    <item>
      <title>UBUNTU-CVE-2026-116674</title>
      <link>https://db.gcve.eu/vuln/ubuntu-cve-2026-116674</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Ubuntu:26.10: node-systeminformation&lt;/p&gt;
&lt;p&gt;systeminformation is a System and OS information library for node.js. Prior to 5.33.13, networkStats(ifaces) in lib/network.js on FreeBSD, OpenBSD, and NetBSD stores per-interface data in the plain-object _network cache and indexes it with the sanitized caller-controlled interface name. Passing proto causes the inherited Object.prototype value to be used instead of creating an own cache entry, so calcNetworkSpeed() writes rx_bytes, tx_bytes, rx_sec, tx_sec, ms, last_ms, and operstate onto Object.prototype. The polluted property names are fixed and their values come from interface statistics, but inherited-name collisions and enumerable keys can corrupt application branching, serialization, configuration merging, validation, or lookup behavior. This issue is fixed in version 5.33.13.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Ubuntu:26.10: node-systeminformation&lt;/p&gt;
&lt;p&gt;systeminformation is a System and OS information library for node.js. Prior to 5.33.13, networkStats(ifaces) in lib/network.js on FreeBSD, OpenBSD, and NetBSD stores per-interface data in the plain-object _network cache and indexes it with the sanitized caller-controlled interface name. Passing proto causes the inherited Object.prototype value to be used instead of creating an own cache entry, so calcNetworkSpeed() writes rx_bytes, tx_bytes, rx_sec, tx_sec, ms, last_ms, and operstate onto Object.prototype. The polluted property names are fixed and their values come from interface statistics, but inherited-name collisions and enumerable keys can corrupt application branching, serialization, configuration merging, validation, or lookup behavior. This issue is fixed in version 5.33.13.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ubuntu-cve-2026-116674</guid>
    </item>
  </channel>
</rss>
