Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Sep 21, 2023

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
systeminformation (source) 5.12.6 -> 5.23.8 age adoption passing confidence

GitHub Vulnerability Alerts

CVE-2023-42810

Impact

SSID Command Injection Vulnerability

Patches

Problem was fixed with a parameter check. Please upgrade to version >= 5.21.7, Version 4 was not affected

Workarounds

If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to wifiConnections(), wifiNetworks() (string only)

References

See also https://systeminformation.io/security.html

CVE-2024-56334

Summary

The SSID is not sanitized when before it is passed as a parameter to cmd.exe in the getWindowsIEEE8021x function. This means that malicious content in the SSID can be executed as OS commands.

Details

I have exploited this vulnerability in a Windows service using version 5.22.11 of the module, to escalate privileges (in an environment where I am authorized to do so). However, as far as I can see from the code, it is still present in master branch at time of writing, on line 403/404 of network.js.

The SSID is obtained from netsh wlan show interface ... in getWindowsWirelessIfaceSSID, and then passed to cmd.exe /d /s /c "netsh wlan show profiles ... in getWindowsIEEE8021x, without sanitization.

PoC

First, the command injection payload should be included in the connected Wi-Fi SSID. For example create hotspot on mobile phone or other laptop, set SSID to payload, connect to it with victim Windows system. Two example SSID's to demonstrate exploitation are below.

Demonstration to run ping command indefinitely:

a" | ping /t 127.0.0.1 &

Run executable with privileges of the user in which vulnerable function is executed. Chosen executable should should be placed in (assuming system drive is C): C:\a\a.exe.

a" | %SystemDrive%\a\a.exe &

Then, the vulnerable function can be executed on the victim system, for example, using:

const si = require('systeminformation');
si.networkInterfaces((net) => { console.log(net) });

Now the chosen command, PING.exe or a.exe will be run through the cmd.exe command line.

Impact

This vulnerability may enable an attacker, depending on how the package is used, to perform remote code execution or local privilege escalation.


Release Notes

sebhildebrandt/systeminformation (systeminformation)

v5.23.8

Compare Source

v5.23.6

Compare Source

v5.23.5

Compare Source

v5.23.4

Compare Source

v5.23.3

Compare Source

v5.23.2

Compare Source

v5.23.1

Compare Source

v5.23.0

Compare Source

v5.22.11

Compare Source

v5.22.10

Compare Source

v5.22.9

Compare Source

v5.22.8

Compare Source

v5.22.7

Compare Source

v5.22.6

Compare Source

v5.22.5

Compare Source

v5.22.4

Compare Source

v5.22.3

Compare Source

v5.22.2

Compare Source

v5.22.1

Compare Source

v5.22.0

Compare Source

v5.21.25

Compare Source

v5.21.24

Compare Source

v5.21.23

Compare Source

v5.21.22

Compare Source

v5.21.21

Compare Source

v5.21.20

Compare Source

v5.21.19

Compare Source

v5.21.18

Compare Source

v5.21.17

Compare Source

v5.21.16

Compare Source

v5.21.15

Compare Source

v5.21.14

Compare Source

v5.21.13

Compare Source

v5.21.12

Compare Source

v5.21.11

Compare Source

v5.21.10

Compare Source

v5.21.9

Compare Source

v5.21.8

Compare Source

v5.21.7

Compare Source

v5.21.6

Compare Source

v5.21.5

Compare Source

v5.21.4

Compare Source

v5.21.3

Compare Source

v5.21.2

Compare Source

v5.21.1

Compare Source

v5.21.0

Compare Source

v5.20.0

Compare Source

v5.19.1

Compare Source

v5.19.0

Compare Source

v5.18.15

Compare Source

v5.18.14

Compare Source

v5.18.13

Compare Source

v5.18.12

Compare Source

v5.18.11

Compare Source

v5.18.10

Compare Source

v5.18.9

Compare Source

v5.18.8

Compare Source

v5.18.7

Compare Source

v5.18.6

Compare Source

v5.18.5

Compare Source

v5.18.4

Compare Source

v5.18.3

Compare Source

v5.18.2

Compare Source

v5.18.1

Compare Source

v5.18.0

Compare Source

v5.17.17

Compare Source

v5.17.16

Compare Source

v5.17.15

Compare Source

v5.17.14

Compare Source

v5.17.13

Compare Source

v5.17.12

Compare Source

v5.17.11

Compare Source

v5.17.10

Compare Source

v5.17.9

Compare Source

v5.17.8

Compare Source

v5.17.7

Compare Source

v5.17.6

Compare Source

v5.17.5

Compare Source

v5.17.4

Compare Source

v5.17.3

Compare Source

v5.17.2

Compare Source

v5.17.1

Compare Source

v5.17.0

Compare Source

v5.16.9

Compare Source

v5.16.8

Compare Source

v5.16.7

Compare Source

v5.16.6

Compare Source

v5.16.5

Compare Source

v5.16.4

Compare Source

v5.16.3

Compare Source

v5.16.2

Compare Source

v5.16.1

Compare Source

v5.16.0

Compare Source

v5.15.1

Compare Source

v5.15.0

Compare Source

v5.14.4

Compare Source

v5.14.3

Compare Source

v5.14.2

Compare Source

v5.14.1

Compare Source

v5.14.0

Compare Source

v5.13.5

Compare Source

v5.13.4

Compare Source

v5.13.3

Compare Source

v5.13.2

Compare Source

v5.13.1

Compare Source

v5.13.0

Compare Source

v5.12.15

Compare Source

v5.12.14

Compare Source

v5.12.13

Compare Source

v5.12.12

Compare Source

v5.12.11

Compare Source

v5.12.10

Compare Source

v5.12.9

Compare Source

v5.12.8

Compare Source

v5.12.7

Compare Source


Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/npm-systeminformation-vulnerability branch from 14310d4 to 28dbc4e Compare December 4, 2023 15:13
@codecov
Copy link

codecov bot commented Dec 4, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.65%. Comparing base (0edc5dc) to head (28dbc4e).
Report is 9 commits behind head on master.

Current head 28dbc4e differs from pull request most recent head 3b3fcfe

Please upload reports for the commit 3b3fcfe to get more accurate results.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #224   +/-   ##
=======================================
  Coverage   98.65%   98.65%           
=======================================
  Files          51       51           
  Lines        1933     1933           
  Branches      513      513           
=======================================
  Hits         1907     1907           
  Misses         23       23           
  Partials        3        3           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@renovate renovate bot force-pushed the renovate/npm-systeminformation-vulnerability branch from 28dbc4e to 7484050 Compare December 4, 2023 15:22
@renovate renovate bot force-pushed the renovate/npm-systeminformation-vulnerability branch 2 times, most recently from 90719a8 to 3b3fcfe Compare June 11, 2024 03:32
@renovate renovate bot force-pushed the renovate/npm-systeminformation-vulnerability branch from 3b3fcfe to 2de6232 Compare December 21, 2024 17:40
@renovate renovate bot changed the title Update dependency systeminformation to v5.21.7 [SECURITY] Update dependency systeminformation to v5.23.8 [SECURITY] Dec 21, 2024
@renovate renovate bot force-pushed the renovate/npm-systeminformation-vulnerability branch 2 times, most recently from 770f535 to 2b43669 Compare June 23, 2025 15:32
@renovate renovate bot force-pushed the renovate/npm-systeminformation-vulnerability branch from 2b43669 to 5c327bd Compare June 24, 2025 09:35
@Templum Templum closed this Jun 24, 2025
@renovate
Copy link
Contributor Author

renovate bot commented Jun 24, 2025

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update (5.23.8). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants