🛡️ CVE-2026-44724 — systeminformation

🟠 CVSS 8.0 — High ✅ No Known Exploit CWE-78 NVD
8.0
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

Systeminformation vulnerable to Linux command injection in networkInterfaces() via unsanitized NetworkManager connection profile name

Summary

On Linux, systeminformation is vulnerable to command injection in networkInterfaces() when an active NetworkManager connection profile name contains shell metacharacters.

This is not caused by a caller passing attacker-controlled arguments into networkInterfaces(). The vulnerable value is obtained internally from real nmcli device status output. The library sanitizes the network interface name before using it in shell commands, but it does not apply equivalent sanitization to the parsed NetworkManager connection profile name. That unsanitized connectionName is then interpolated into three shell command strings executed through execSync().

This issue was validated locally against real NetworkManager and real nmcli. Calling only:

```js

require('./lib').networkInterfaces()

```

was enough to trigger execution. The injected command ran with the privileges of the calling Node.js process.

Affected Component & Versions

Affected component:

  • [lib/network.js](https://github.com/sebhildebrandt/systeminformation/blob/ed1cac537c59763301d802ad1b55b4b8581e7553/lib/network.js)
  • networkInterfaces()
  • Linux NetworkManager / nmcli handling

Impact & Threat Model

Confirmed impact:

An attacker who can create or rename an active NetworkManager connection profile can execute arbitrary shell commands when a Node.js process using systeminformation calls networkInterfaces().

Confirmed realistic affected deployments include:

  • local inventory agents
  • monitoring agents
  • diagnostics tools
  • admin dashboard backends collecting host information
  • privileged local desktop or device-management agents

If such a process runs with elevated privileges, the injected command executes with those same elevated privileges.

Confirmed facts:

  • The payload was stored as a real NetworkManager connection profile name.
  • Real nmcli device status returned the name unchanged.
  • networkInterfaces() parsed that value and reused it in shell commands.
  • The injected command ran as the calling Node.js process.
  • Environment key categories were reachable from the injected process context.

Not claimed:

  • No remote exploitation claim is made.
  • No AV:N or AV:A claim is made.
  • No SSID-to-connection-name attack path is claimed.
  • File-delivery-only .nmconnection import was not confirmed as a remote or unauthenticated path.

Root Cause Analysis

The root cause is inconsistent trust handling between the Linux interface name and the NetworkManager connection profile name.

The interface name is sanitized before it is embedded into shell commands:

```js

const iface = dev.split(':')[0].trim();

const s = util.isPrototypePolluted() ? '---' : util.sanitizeShellString(iface);

```

However, the NetworkManager connection name is parsed from command output and later reused without equivalent sanitization:

```js

const connectionNameLines = resultFormat.split(' ').slice(3);

const connectionName = connectionNameLines.join(' ');

return connectionName !== '--' ? connectionName : '';

```

That is unsafe because NetworkManager profile names can contain shell metacharacters. Quoting the value inside "${connectionName}" does not make it safe. A connection name containing ", $(), ;, backticks, or similar shell syntax can break out of the intended argument context or trigger command substitution.

The vulnerable code executes through execSync(), which invokes a shell for command strings. As a result, interpolating connectionName into the command string creates a command-injection sink.

Exact Code Flow & File Paths

Source: [lib/network.js:538-544](https://github.com/sebhildebrandt/systeminformation/blob/ed1cac537c59763301d802ad1b55b4b8581e7553/lib/network.js#L538-L544)

```js

function getLinuxIfaceConnectionName(interfaceName) {

const cmd = nmcli device status 2>/dev/null | grep ${interfaceName};

try {

const result = execSync(cmd, util.execOptsLinux).toString();

const resultFormat = result.replace(/\s+/g, ' ').trim();

const connectionNameLines = resultFormat.split(' ').slice(3);

```

The parsed value is then returned as connectionName.

Trigger: [lib/network.js:987-991](https://github.com/sebhildebrandt/systeminformation/blob/ed1cac537c59763301d802ad1b55b4b8581e7553/lib/network.js#L987-L991)

```js

lines = execSync(cmd, util.execOptsLinux).toString().split('\n');

const connectionName = getLinuxIfaceConnectionName(ifaceSanitized);

dhcp = getLinuxIfaceDHCPstatus(ifaceSanitized, connectionName, _dhcpNics);

dnsSuffix = getLinuxIfaceDNSsuffix(connectionName);

ieee8021xAuth = getLinuxIfaceIEEE8021xAuth(connectionName);

```

Sink 1: [lib/network.js:620](https://github.com/sebhildebrandt/systeminformation/blob/ed1cac537c59763301d802ad1b55b4b8581e7553/lib/network.js#L620-L620)

```js

const cmd =

How this vulnerability can be exploited

This issue can be reached with local access to the system, attack complexity is low, an attacker needs low-level privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality high, integrity high, availability high.

Weakness class

CVE-2026-44724 is classified as CWE-78: OS Command Injection. Untrusted input reaches a shell command without neutralisation, so an attacker can run arbitrary operating system commands.

Affected software

CVE-2026-44724 is recorded against 2 packages.

  • systeminformation
  • unknown

Timeline and source

Published on 13 May 2026 and last revised on 9 June 2026. No public exploit is currently recorded for this entry. Record sourced from NVD.

References

github.com (Web)
nvd.nist.gov (Advisory)
github.com (Package)
github.com (Web)

CVE-2026-44724 on other distributions

Each distribution ships its own build and its own fixed version. Pick the one you run:

Details

Severity HIGH
CVSS Score 8.0
CVSS Vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWE CWE-78
Public Exploit ✅ No
Source NVD
Published 2026-05-13
Updated 2026-08-12
Modified 2026-06-09
Fix URL N/A

Affected Packages

Software From version Fixed in
systeminformation
unknown

Site Security Check

Is systeminformation part of your stack?

CVE-2026-44724 is rated CVSS 8.0 High. BotEraser scans your installation against known CVE records and tells you whether this vulnerability applies to the versions you actually run.

Scan My Site Free →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.