CVE-2026-26280: CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') in sebhildebrandt systeminformation
systeminformation is a System and OS information library for node.js. In versions prior to 5.30.8, a command injection vulnerability in the `wifiNetworks()` function allows an attacker to execute arbitrary OS commands via an unsanitized network interface parameter in the retry code path. In `lib/wifi.js`, the `wifiNetworks()` function sanitizes the `iface` parameter on the initial call (line 437). However, when the initial scan returns empty results, a `setTimeout` retry (lines 440-441) calls `getWifiNetworkListIw(iface)` with the **original unsanitized** `iface` value, which is passed directly to `execSync('iwlist ${iface} scan')`. Any application passing user-controlled input to `si.wifiNetworks()` is vulnerable to arbitrary command execution with the privileges of the Node.js process. Version 5.30.8 fixes the issue.
AI Analysis
Technical Summary
CVE-2026-26280 is an OS command injection vulnerability identified in the systeminformation library for Node.js, specifically in versions prior to 5.30.8. The vulnerability resides in the wifiNetworks() function within lib/wifi.js. Initially, the iface parameter (representing the network interface) is sanitized before use. However, if the initial scan returns no results, a retry mechanism triggers a setTimeout callback that calls getWifiNetworkListIw(iface) with the original, unsanitized iface parameter. This unsanitized input is directly interpolated into a shell command executed via execSync('iwlist ${iface} scan'). Because the iface parameter is not sanitized during this retry, an attacker who can influence this parameter can inject arbitrary OS commands, which execute with the privileges of the Node.js process running the library. This vulnerability is classified under CWE-78 (Improper Neutralization of Special Elements used in an OS Command) and has a CVSS 3.1 base score of 8.4, indicating high severity. The attack vector is local (AV:L), requiring no privileges (PR:N) or user interaction (UI:N), and impacts confidentiality, integrity, and availability (C:H/I:H/A:H). No known exploits are reported in the wild yet. The issue was reserved on 2026-02-12 and published on 2026-02-19. The fix involves proper sanitization of the iface parameter during all code paths, implemented in version 5.30.8. This vulnerability is critical for applications that pass user-controlled input to the wifiNetworks() function, as it allows arbitrary command execution on the host system.
Potential Impact
The vulnerability allows attackers to execute arbitrary OS commands with the privileges of the Node.js process, potentially leading to full system compromise. This can result in unauthorized data access or modification (confidentiality and integrity impact), service disruption or denial (availability impact), and lateral movement within networks. Since the vulnerability requires only local access or the ability to supply input to the iface parameter, it poses a significant risk in multi-tenant environments, shared hosting, or applications exposing this functionality to untrusted users. Organizations relying on systeminformation for network interface scanning in security monitoring, asset management, or diagnostics may inadvertently expose themselves to remote or local attackers. The high CVSS score reflects the broad impact and ease of exploitation once input control is achieved. The lack of known exploits in the wild suggests limited current exploitation but does not diminish the urgency for remediation given the severity and potential impact.
Mitigation Recommendations
1. Upgrade the systeminformation library to version 5.30.8 or later, where the vulnerability is fixed. 2. Audit all code paths invoking wifiNetworks() to ensure no user-controlled input is passed to the iface parameter. 3. Implement strict input validation and sanitization on any network interface parameters before passing them to systeminformation functions. 4. Employ runtime application self-protection (RASP) or host-based intrusion detection systems (HIDS) to monitor and block suspicious command executions. 5. Restrict Node.js process privileges to the minimum necessary to limit the impact of potential exploitation. 6. Conduct code reviews and penetration testing focusing on injection vulnerabilities in native module calls and system command executions. 7. If upgrading immediately is not feasible, consider isolating or sandboxing the affected functionality to reduce risk. 8. Monitor security advisories and threat intelligence feeds for any emerging exploit attempts targeting this vulnerability.
Affected Countries
United States, Germany, India, United Kingdom, Canada, France, Australia, Netherlands, Japan, South Korea
CVE-2026-26280: CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') in sebhildebrandt systeminformation
Description
systeminformation is a System and OS information library for node.js. In versions prior to 5.30.8, a command injection vulnerability in the `wifiNetworks()` function allows an attacker to execute arbitrary OS commands via an unsanitized network interface parameter in the retry code path. In `lib/wifi.js`, the `wifiNetworks()` function sanitizes the `iface` parameter on the initial call (line 437). However, when the initial scan returns empty results, a `setTimeout` retry (lines 440-441) calls `getWifiNetworkListIw(iface)` with the **original unsanitized** `iface` value, which is passed directly to `execSync('iwlist ${iface} scan')`. Any application passing user-controlled input to `si.wifiNetworks()` is vulnerable to arbitrary command execution with the privileges of the Node.js process. Version 5.30.8 fixes the issue.
AI-Powered Analysis
Technical Analysis
CVE-2026-26280 is an OS command injection vulnerability identified in the systeminformation library for Node.js, specifically in versions prior to 5.30.8. The vulnerability resides in the wifiNetworks() function within lib/wifi.js. Initially, the iface parameter (representing the network interface) is sanitized before use. However, if the initial scan returns no results, a retry mechanism triggers a setTimeout callback that calls getWifiNetworkListIw(iface) with the original, unsanitized iface parameter. This unsanitized input is directly interpolated into a shell command executed via execSync('iwlist ${iface} scan'). Because the iface parameter is not sanitized during this retry, an attacker who can influence this parameter can inject arbitrary OS commands, which execute with the privileges of the Node.js process running the library. This vulnerability is classified under CWE-78 (Improper Neutralization of Special Elements used in an OS Command) and has a CVSS 3.1 base score of 8.4, indicating high severity. The attack vector is local (AV:L), requiring no privileges (PR:N) or user interaction (UI:N), and impacts confidentiality, integrity, and availability (C:H/I:H/A:H). No known exploits are reported in the wild yet. The issue was reserved on 2026-02-12 and published on 2026-02-19. The fix involves proper sanitization of the iface parameter during all code paths, implemented in version 5.30.8. This vulnerability is critical for applications that pass user-controlled input to the wifiNetworks() function, as it allows arbitrary command execution on the host system.
Potential Impact
The vulnerability allows attackers to execute arbitrary OS commands with the privileges of the Node.js process, potentially leading to full system compromise. This can result in unauthorized data access or modification (confidentiality and integrity impact), service disruption or denial (availability impact), and lateral movement within networks. Since the vulnerability requires only local access or the ability to supply input to the iface parameter, it poses a significant risk in multi-tenant environments, shared hosting, or applications exposing this functionality to untrusted users. Organizations relying on systeminformation for network interface scanning in security monitoring, asset management, or diagnostics may inadvertently expose themselves to remote or local attackers. The high CVSS score reflects the broad impact and ease of exploitation once input control is achieved. The lack of known exploits in the wild suggests limited current exploitation but does not diminish the urgency for remediation given the severity and potential impact.
Mitigation Recommendations
1. Upgrade the systeminformation library to version 5.30.8 or later, where the vulnerability is fixed. 2. Audit all code paths invoking wifiNetworks() to ensure no user-controlled input is passed to the iface parameter. 3. Implement strict input validation and sanitization on any network interface parameters before passing them to systeminformation functions. 4. Employ runtime application self-protection (RASP) or host-based intrusion detection systems (HIDS) to monitor and block suspicious command executions. 5. Restrict Node.js process privileges to the minimum necessary to limit the impact of potential exploitation. 6. Conduct code reviews and penetration testing focusing on injection vulnerabilities in native module calls and system command executions. 7. If upgrading immediately is not feasible, consider isolating or sandboxing the affected functionality to reduce risk. 8. Monitor security advisories and threat intelligence feeds for any emerging exploit attempts targeting this vulnerability.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-02-12T17:10:53.414Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 69978157d7880ec89b3497ac
Added to database: 2/19/2026, 9:32:07 PM
Last enriched: 2/19/2026, 9:46:53 PM
Last updated: 2/20/2026, 11:20:31 PM
Views: 13
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Related Threats
CVE-2026-27134: CWE-287: Improper Authentication in strimzi strimzi-kafka-operator
HighCVE-2026-27190: CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') in denoland deno
HighCVE-2026-27026: CWE-770: Allocation of Resources Without Limits or Throttling in py-pdf pypdf
MediumCVE-2026-27025: CWE-834: Excessive Iteration in py-pdf pypdf
MediumCVE-2026-27024: CWE-835: Loop with Unreachable Exit Condition ('Infinite Loop') in py-pdf pypdf
MediumActions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console in Console -> Billing for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.