systeminformation: Prototype pollution in `networkStats()` via the interface name
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.33.13
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
The systeminformation Node.js library is affected on FreeBSD, OpenBSD, and NetBSD systems when its network statistics function is called with a crafted interface name. An attacker who controls that name can pollute the JavaScript object prototype, which can corrupt application logic, data serialization, configuration merging, or validation in software that uses the library.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
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.
Timeline
- CVE published
- First seen by cve.now
Affected versions
- sebhildebrandt systeminformation
fixed in 5.33.13
- systeminformationnpm
fixed in 5.33.13