Every CVE Search/ Get API key

CVE-2026-44724

systeminformation: Linux command injection in networkInterfaces() via unsanitized NetworkManager connection profile name

7.8 HighFix available

systeminformation is a System and OS information library for node.js. From 4.17.0 to 5.31.5, on Linux, systeminformation is vulnerable to command injection in networkInterfaces() when an active NetworkManager connection profile name contains shell metacharacters. 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 vulnerability is fixed in 5.31.6.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.92%Up 0.9 points since May 28, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.8

systeminformation: Linux command injection in networkInterfaces() via unsanitized NetworkManager connection profile name

systeminformation is a System and OS information library for node.js. From 4.17.0 to 5.31.5, on Linux, systeminformation is vulnerable to command injection in networkInterfaces() when an active NetworkManager connection profile name contains shell metacharacters. 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 vulnerability is fixed in 5.31.6.

Record
CVE-2026-44724
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-78, CWE-78
Updated
2026-11-02
EUVDEUVD-2026-32639 7.8

systeminformation is a System and OS information library for node.js. From 4.17.0 to 5.31.5, on Linux, systeminformation is vulnerable to command injection in networkInterfaces() when an active NetworkManager connection profile name contains shell metacharacters. 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 vulnerability is fixed in 5.31.6.

Record
EUVD-2026-32639
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-hvx9-hwr7-wjj9 7.8

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:

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
  • 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:

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:

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

function getLinuxIfaceConnectionName(interfaceName) {
  const cmd = `nmcli device status 2>/dev/null | grep ${interfaceName}`;

  try {
    const result = execSync(cmd,…
Record
GHSA-hvx9-hwr7-wjj9
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-78
Updated
2026-11-02
NVD 7.8

systeminformation is a System and OS information library for node.js. From 4.17.0 to 5.31.5, on Linux, systeminformation is vulnerable to command injection in networkInterfaces() when an active NetworkManager connection profile name contains shell metacharacters. 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 vulnerability is fixed in 5.31.6.

Record
CVE-2026-44724
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-78
Updated
2026-11-02
OSV 7.8

systeminformation: Linux command injection in networkInterfaces() via unsanitized NetworkManager connection profile name

systeminformation is a System and OS information library for node.js. From 4.17.0 to 5.31.5, on Linux, systeminformation is vulnerable to command injection in networkInterfaces() when an active NetworkManager connection profile name contains shell metacharacters. 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 vulnerability is fixed in 5.31.6.

Record
CVE-2026-44724
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-78
Updated
2026-11-02
OSVDEBIAN-CVE-2026-44724 7.8

systeminformation is a System and OS information library for node.js. From 4.17.0 to 5.31.5, on Linux, systeminformation is vulnerable to command injection in networkInterfaces() when an active NetworkManager connection profile name contains shell metacharacters. 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 vulnerability is fixed in 5.31.6.

Record
DEBIAN-CVE-2026-44724
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
Show 4 moreShow less
OSVGHSA-hvx9-hwr7-wjj9 7.8

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:

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
  • 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:

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:

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

function getLinuxIfaceConnectionName(interfaceName) {
  const cmd = `nmcli device status 2>/dev/null | grep ${interfaceName}`;

  try {
    const result = execSync(cmd,…
Record
GHSA-hvx9-hwr7-wjj9
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-78
Updated
2026-11-02
OSVROOT-APP-NPM-CVE-2026-44724 7.8

CVE-2026-44724 in systeminformation - Patched by Root

Root has patched CVE-2026-44724 in the systeminformation package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-CVE-2026-44724
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2026-44724 7.8

systeminformation is a System and OS information library for node.js. From 4.17.0 to 5.31.5, on Linux, systeminformation is vulnerable to command injection in networkInterfaces() when an active NetworkManager connection profile name contains shell metacharacters. 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 vulnerability is fixed in 5.31.6.

Record
UBUNTU-CVE-2026-44724
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVCLSA-2026-1788560453 No score

TuxCare security update for systeminformation (4 CVEs)

TuxCare rebuilt systeminformation to address 4 CVEs. Fixed in 5.23.8-tuxcare.1.

Record
CLSA-2026-1788560453
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
systeminformation
npm
4.17.0 to 5.31.5
5.31.6
systeminformation
TuxCare:npm
From an advisory covering 4 CVEs
5.23.8-tuxcare.0 up to 5.23.8-tuxcare.1, plus listed versions
5.23.8
5.23.8-tuxcare.1
jupyterlab
Debian:13
All versions, plus listed versions
4.0.11+ds1+~cs11.25.27-74.0.11+ds1+~cs11.25.27-84.0.11+ds1+~cs11.25.27-94.0.11+ds2+~cs11.25.27-14.0.11+ds2+~cs11.25.27-3
Show 24 moreShow less
4.0.11+ds3+~cs11.25.27-14.0.11+ds4+~cs11.25.27-14.0.11+ds4+~cs11.25.27-24.0.11+ds4+~cs11.25.27-34.0.11+ds4+~cs11.25.27-44.0.11+ds5+~cs11.25.27-14.0.13+ds1+~2.0.1+~cs1.4.4-14.1.3+ds1+~2.0.1+~0.15.3+~cs1.4.4-14.1.8+ds1+~2.0.1+~0.15.3+~cs1.4.4-14.1.8+ds1+~2.0.1+~0.15.3+~cs1.4.4-24.1.8+ds1+~2.0.1+~0.15.3+~cs1.4.4-34.1.8+ds1+~2.0.1+~0.15.3+~cs1.4.4-44.1.8+ds1+~2.0.1+~0.15.3+~cs1.4.4-54.1.8+ds1+~2.0.1+~0.15.3+~cs1.4.4-64.1.8+ds1+~2.0.1+~0.15.3+~cs1.4.4-74.1.8+ds1+~2.0.1+~0.15.3+~cs1.4.4-84.4.1+ds1+~3.0.5+~0.16.6+~cs1.4.4-14.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-14.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-24.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-34.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-44.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-54.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-64.4.8+ds1+~3.1.0+~0.16.6+~cs1.4.4-1
None known
jupyterlab
Debian:14
before 4.0.11+ds5+~cs11.25.27-1, plus listed versions
4.0.11+ds1+~cs11.25.27-74.0.11+ds1+~cs11.25.27-84.0.11+ds1+~cs11.25.27-94.0.11+ds2+~cs11.25.27-14.0.11+ds2+~cs11.25.27-3
Show 5 moreShow less
4.0.11+ds3+~cs11.25.27-14.0.11+ds4+~cs11.25.27-14.0.11+ds4+~cs11.25.27-24.0.11+ds4+~cs11.25.27-34.0.11+ds4+~cs11.25.27-4
4.0.11+ds5+~cs11.25.27-1
systeminformation
npm
4.17.0 up to 5.31.6
5.31.6
systeminformation
Root:npm
before 5.23.8-aikido.5
5.23.8-aikido.55.23.8-aikido.6
@rootio/systeminformation
Root:npm
before 5.23.8-root.io.5
5.23.8-root.io.55.23.8-root.io.45.23.8-root.io.6
jupyterlab
Ubuntu:25.10
All versions, plus listed versions
4.0.11+ds1+~cs11.25.27-54.0.11+ds1+~cs11.25.27-64.0.11+ds1+~cs11.25.27-7
None known
jupyterlab
Ubuntu:26.10
All versions, plus listed versions
4.0.11+ds1+~cs11.25.27-94.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-34.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-4
None known
node-systeminformation
Ubuntu:26.10
All versions, plus listed versions
5.31.6-45.31.7-1
None known
jupyterlab
Ubuntu:26.04:LTS
All versions, plus listed versions
4.0.11+ds1+~cs11.25.27-74.0.11+ds1+~cs11.25.27-84.0.11+ds1+~cs11.25.27-9
None known

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-44724 is a high vulnerability (CVSS 7.8) in Sebhildebrandt Systeminformation, published May 13, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.92%, the 60th percentile. Fixed in systeminformation 5.31.6.

References

Show 8 moreShow less
This page doesn't list everything

Left out here: the rest of 2 source descriptions. The JSON record has them.

MoveEnter Open