Compare commits

...

10 Commits

Author SHA1 Message Date
504ecf272d osInfo() add domain (windows)
Some checks are pending
CodeQL / Analyze (javascript) (push) Waiting to run
Test / build (16.x, macos-latest) (push) Waiting to run
Test / build (16.x, ubuntu-latest) (push) Waiting to run
Test / build (16.x, windows-latest) (push) Waiting to run
Test / build (17.x, ubuntu-latest) (push) Waiting to run
Test / build (18.x, macos-latest) (push) Waiting to run
Test / build (18.x, ubuntu-latest) (push) Waiting to run
Test / build (18.x, windows-latest) (push) Waiting to run
Test / build (19.x, ubuntu-latest) (push) Waiting to run
Test / build (20.x, macos-latest) (push) Waiting to run
Test / build (20.x, ubuntu-latest) (push) Waiting to run
Test / build (20.x, windows-latest) (push) Waiting to run
2026-02-26 21:35:34 +01:00
Sebastian Hildebrandt
91e1acf7d3 5.31.1 2026-02-17 20:15:09 +01:00
Sebastian Hildebrandt
5408bb6d1c docs updated (security advisory) 2026-02-17 20:15:03 +01:00
Sebastian Hildebrandt
2a28d2d083 versions() fix Command Injection issue (linux), added smartmontools support (macOS) 2026-02-15 09:08:35 +01:00
Sebastian Hildebrandt
5a534cd62a 5.31.0 2026-02-15 09:01:23 +01:00
Sebastian Hildebrandt
b67d3715ee versions() fix Command Injection issue (linux), added smartmontools support (macOS) 2026-02-15 09:00:12 +01:00
Sebastian Hildebrandt
612d97e890 5.30.8 2026-02-14 11:09:13 +01:00
Sebastian Hildebrandt
22242aa561 wifiNetworks() fixed CWE-78 command injection issue (linux) 2026-02-14 11:09:05 +01:00
Sebastian Hildebrandt
41c7ea4ff8 5.30.7 2026-01-31 16:20:13 +01:00
Sebastian Hildebrandt
f4ff1d9faa networkInterfaces() fixed getWindowsIEEE8021x issue (windows) 2026-01-31 16:20:05 +01:00
12 changed files with 176 additions and 51 deletions

View File

@ -54,16 +54,17 @@ and adapt your own code to be again compatible to the new version 5.
- `cpuTemperature()` added socket and chipset temp (linux)
- `currentLoad()` added steal and guest time (linux)
- `disksIO()` added wait time (linux)
- `diskLayout()`: added USB drives (mac OS)
- `diskLayout()`: added USB drives (macOS)
- `diskLayout()`: added S.M.R.R.T. (win)
- `diskLayout()`: added S.M.R.R.T. (macOS)
- `fsSize()`: added available
- `fsSize()`: improved calculation of used
- `getData()`: support for passing parameters and filters (see section General /
getData)
- `graphics()`: extended properties (mac OS)
- `graphics()`: extended properties (macOS)
- `graphics()`: extended nvidia-smi parsing
- `networkInterfaces()`: type detection improved (win - wireless)
- `networkConnections()`: added process name (mac OS)
- `networkConnections()`: added process name (macOS)
- `memLayout()`: extended manufacturer list (decoding)
- `memLayout()`: added ECC flag
- `osInfo()`: better fqdn (win)
@ -90,6 +91,10 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| Version | Date | Comment |
| ------- | ---------- | --------------------------------------------------------------------------------------------------- |
| 5.31.1 | 2026-02-17 | `docs` updated (security advisory) |
| 5.31.0 | 2026-02-15 | `diskLayout()` added smartmontools support (macOS), `versions()` command injection issue (linux) |
| 5.30.8 | 2026-02-14 | `wifiNetworks()` fixed CWE-78 command injection issue (linux) |
| 5.30.7 | 2026-01-31 | `networkInterfaces()` fixed getWindowsIEEE8021x issue (windows) |
| 5.30.6 | 2026-01-22 | `graphics()` improved nvidia-smi detection (windows) |
| 5.30.5 | 2026-01-16 | `networkInterfaces()` fix uppercase iface names (linux) |
| 5.30.4 | 2026-01-15 | `powerShell()` fix UTF8 output (windows) |
@ -190,7 +195,7 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 5.22.4 | 2024-03-16 | `uuid()` improved parsing machine id (linux) |
| 5.22.3 | 2024-03-15 | `chassis()` improved parsing memory bank (windows) |
| 5.22.2 | 2024-03-14 | `chassis()` type, assetTag, sku improved parsing (macOS) |
| 5.22.1 | 2024-03-12 | `wifiConnections()` patch for mac OS Sonome 14.4 (macOS) |
| 5.22.1 | 2024-03-12 | `wifiConnections()` patch for macOS Sonome 14.4 (macOS) |
| 5.22.0 | 2024-02-18 | `wifiConnections()` added signal quality attribute |
| 5.21.25 | 2024-02-17 | `wifiConnections()` fixed signal strength (windows) |
| 5.21.24 | 2024-01-21 | `osInfo()` improved release version parsing (linux) |
@ -229,18 +234,18 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 5.18.10 | 2023-07-28 | `cpu()` fixed cache sizes, extended sockets (windows) |
| 5.18.9 | 2023-07-26 | `fsSize()` fixed missing rw property (windows) |
| 5.18.8 | 2023-07-25 | `cpu()` added AMD ZEN 4 base frequencies |
| 5.18.7 | 2023-07-12 | `osInfo()` added macOS Sonoma code name (mac OS) |
| 5.18.6 | 2023-06-28 | `graphics()` fixed catched errors (mac OS) |
| 5.18.5 | 2023-06-26 | `cpu()` fixed parsing (mac OS) |
| 5.18.4 | 2023-06-22 | `graphics()` fixed parsing (mac OS) |
| 5.18.7 | 2023-07-12 | `osInfo()` added macOS Sonoma code name (macOS) |
| 5.18.6 | 2023-06-28 | `graphics()` fixed catched errors (macOS) |
| 5.18.5 | 2023-06-26 | `cpu()` fixed parsing (macOS) |
| 5.18.4 | 2023-06-22 | `graphics()` fixed parsing (macOS) |
| 5.18.3 | 2023-06-09 | `tests` improved key handling, updated docs |
| 5.18.2 | 2023-06-08 | `fsSize()` improved error handling (linux alpine) |
| 5.18.1 | 2023-06-07 | `networkInterfaces()` cleaned up testVirtualNic |
| 5.18.0 | 2023-06-06 | `fsSize()` added optional drive parameter |
| 5.17.17 | 2023-06-03 | `osInfo()` improved fqdn (linux) |
| 5.17.16 | 2023-05-30 | `usb()` fix parsing JSON (mac OS) |
| 5.17.16 | 2023-05-30 | `usb()` fix parsing JSON (macOS) |
| 5.17.15 | 2023-05-29 | `powershell()` added NoProfile to speed up powershell (windows) |
| 5.17.14 | 2023-05-29 | `diskLayout()`, `osInfo()` fix parsing issues (mac OS) |
| 5.17.14 | 2023-05-29 | `diskLayout()`, `osInfo()` fix parsing issues (macOS) |
| 5.17.13 | 2023-05-24 | `typings` fix typings dynamicData, networkInterfaceDatass |
| 5.17.12 | 2023-02-28 | `uuid()` fix unique mac address issue (Android) |
| 5.17.11 | 2023-02-27 | `blockDevices()` raid added label, uuid (linux) |
@ -253,10 +258,10 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 5.17.4 | 2023-01-24 | `networkInterfaces()` sanitizing networkInterfaces device names |
| 5.17.3 | 2023-01-10 | `processes()` fix elapsed time parsing (linux) |
| 5.17.2 | 2023-01-10 | `utils` fix killing powershell (windows) |
| 5.17.1 | 2023-01-06 | `graphics()` positionX, positionY Ventura fix (mac OS) |
| 5.17.0 | 2023-01-06 | `graphics()` added positionX, positionY (mac OS) |
| 5.17.1 | 2023-01-06 | `graphics()` positionX, positionY Ventura fix (macOS) |
| 5.17.0 | 2023-01-06 | `graphics()` added positionX, positionY (macOS) |
| 5.16.9 | 2022-12-27 | updated docs |
| 5.16.8 | 2022-12-22 | `processes()` params truncated fix (mac OS) |
| 5.16.8 | 2022-12-22 | `processes()` params truncated fix (macOS) |
| 5.16.7 | 2022-12-22 | `processes()` commandLine missing spaces fix (windows) |
| 5.16.6 | 2022-12-12 | `processes()` time format fix (linux) |
| 5.16.5 | 2022-12-09 | `inetLatency()` fix for alpine (linux) |
@ -264,9 +269,9 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 5.16.3 | 2022-12-08 | `users()` fix when multiple explorer.exe (windows) |
| 5.16.2 | 2022-12-08 | `dockerContainerStats()` improved calculation cpuPercent |
| 5.16.1 | 2022-12-04 | code cleanup, moved from lgtm to GitHub Code Scan |
| 5.16.0 | 2022-12-01 | `fsSize()` added rw (win, linux, mac OS, BSD) |
| 5.16.0 | 2022-12-01 | `fsSize()` added rw (win, linux, macOS, BSD) |
| 5.15.1 | 2022-11-29 | fix typescript typings |
| 5.15.0 | 2022-11-29 | `blockDevices()` added device (win, linux, mac OS) |
| 5.15.0 | 2022-11-29 | `blockDevices()` added device (win, linux, macOS) |
| 5.14.4 | 2022-11-21 | `osInfo()` improved uefi parsing (FreeBSD) |
| 5.14.3 | 2022-11-20 | `graphics()` multi monitor refresh rate (windows) |
| 5.14.2 | 2022-11-20 | `osInfo()` improved parsing (FreeBSD) |
@ -277,20 +282,20 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 5.13.3 | 2022-11-18 | `cpuTemperature()` fix main temp (linux) |
| 5.13.2 | 2022-11-18 | `cpuTemperature()` fix main temp (linux) |
| 5.13.1 | 2022-11-18 | `processLoad()` fix main pid (linux) |
| 5.13.0 | 2022-11-17 | `networkConnections()` addedd process name (mac OS) |
| 5.12.15 | 2022-11-16 | `networkConnections()` adapted parsing to reflect also UDP (mac OS) |
| 5.13.0 | 2022-11-17 | `networkConnections()` addedd process name (macOS) |
| 5.12.15 | 2022-11-16 | `networkConnections()` adapted parsing to reflect also UDP (macOS) |
| 5.12.14 | 2022-11-11 | restored `powershell` compatibility for version 7.3 (windows) |
| 5.12.13 | 2022-11-06 | updated docs |
| 5.12.12 | 2022-11-03 | fix typescript typings |
| 5.12.11 | 2022-10-27 | `wifiInterfaces()`, `wifiConnections` improved parsing (linux) |
| 5.12.10 | 2022-10-25 | `bluetooth()` adapted parsing to accept also new profile (mac OS) |
| 5.12.10 | 2022-10-25 | `bluetooth()` adapted parsing to accept also new profile (macOS) |
| 5.12.9 | 2022-10-24 | fix typescript typings, code cleanup, docs updated |
| 5.12.8 | 2022-10-23 | `processes()` fix truncated commands (windows) |
| 5.12.7 | 2022-10-15 | `versions()` fix postgres |
| 5.12.6 | 2022-08-18 | `networkConnections()` fix UDP (windows) |
| 5.12.5 | 2022-08-11 | `cpu()` virtualization fix (mac OS) |
| 5.12.5 | 2022-08-11 | `cpu()` virtualization fix (macOS) |
| 5.12.4 | 2022-08-09 | `cpuTemperature()` fix main (linux) |
| 5.12.3 | 2022-08-04 | `networkInterfaces()` operstate fix (mac OS) |
| 5.12.3 | 2022-08-04 | `networkInterfaces()` operstate fix (macOS) |
| 5.12.2 | 2022-08-01 | `services()` Ubuntu 22.04 fix |
| 5.12.1 | 2022-07-14 | `cpuTemperature()` Apple Silicon support (see docs) |
| 5.12.0 | 2022-07-12 | `cpu()` added performance and efficiency cores (linux) |
@ -298,7 +303,7 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 5.11.25 | 2022-07-11 | `fsSize()` fix issue filtering (linux) |
| 5.11.24 | 2022-07-10 | `fsSize()` fix parsing linux (df) |
| 5.11.23 | 2022-07-09 | `fsSize()` fixes (linux), `baseboard()` fix (windows), `cpuTemperatur()` fix linux |
| 5.11.22 | 2022-06-24 | `processes()` improved parsing (linux, mac OS) |
| 5.11.22 | 2022-06-24 | `processes()` improved parsing (linux, macOS) |
| 5.11.21 | 2022-06-17 | `fsSize()` fix parsing linux (df) |
| 5.11.20 | 2022-06-13 | `diskLayout()` fix parsing linux (JSON) |
| 5.11.19 | 2022-06-13 | `diskLayout()` optimized parsing linux (JSON) |
@ -307,8 +312,8 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 5.11.16 | 2022-05-30 | `docs` updated, `tests` added node 18 |
| 5.11.15 | 2022-05-11 | `audio()` fix typescript typings |
| 5.11.14 | 2022-04-22 | `netforkInterfaces()` node 18 compatibility |
| 5.11.13 | 2022-04-21 | `networkStats()` improved scanning (mac OS) |
| 5.11.12 | 2022-04-19 | `battery()` improved M1 support (mac OS) |
| 5.11.13 | 2022-04-21 | `networkStats()` improved scanning (macOS) |
| 5.11.12 | 2022-04-19 | `battery()` improved M1 support (macOS) |
| 5.11.11 | 2022-04-19 | `networkInterfaces()` improved parsing (windows) |
| 5.11.10 | 2022-04-18 | updated docs |
| 5.11.9 | 2022-03-20 | `diskLayout()` fixed issue smartStatus (linux) |
@ -329,11 +334,11 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 5.10.2 | 2022-01-17 | `uuid()` fix results (windows) |
| 5.10.1 | 2022-01-17 | `cpu()` fix manufacturer |
| 5.10.0 | 2022-01-09 | basic `Android` support |
| 5.9.18 | 2022-01-08 | `wifiConections()` fix empty issue (mac OS) |
| 5.9.17 | 2021-12-07 | `wifiNetworks()` fix empty issue (mac OS) |
| 5.9.16 | 2021-12-05 | `wifiNetworks()` adaption for Apple silicon (mac OS) |
| 5.9.18 | 2022-01-08 | `wifiConections()` fix empty issue (macOS) |
| 5.9.17 | 2021-12-07 | `wifiNetworks()` fix empty issue (macOS) |
| 5.9.16 | 2021-12-05 | `wifiNetworks()` adaption for Apple silicon (macOS) |
| 5.9.15 | 2021-11-19 | `cpuCache()` fix (windows) |
| 5.9.14 | 2021-11-17 | `versions()` python 2 monterey (deprecated warning) fix (mac OS) |
| 5.9.14 | 2021-11-17 | `versions()` python 2 monterey (deprecated warning) fix (macOS) |
| 5.9.13 | 2021-11-14 | `time()` timezone name, `l1 cache` improvements |
| 5.9.12 | 2021-11-13 | `users()` fix data check (windows) |
| 5.9.11 | 2021-11-12 | `fsStats()` fix null result (bsd) |
@ -408,7 +413,7 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 5.2.6 | 2021-02-12 | `inetLatency()` fixed possible DOS intrusion |
| 5.2.5 | 2021-02-11 | `processes()` fixed truncated params (linux) |
| 5.2.4 | 2021-02-11 | `currentLoad()` fixed issue |
| 5.2.3 | 2021-02-11 | `diskLayout()` added USB drives (mac OS) |
| 5.2.3 | 2021-02-11 | `diskLayout()` added USB drives (macOS) |
| 5.2.2 | 2021-02-11 | code cleanup, updated docs |
| 5.2.1 | 2021-02-10 | `system()` fixed issue virtual detect (linux) |
| 5.2.0 | 2021-02-10 | `wifiInterfces()` and `wifiConnections()` added |
@ -417,7 +422,7 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 5.1.0 | 2021-02-08 | `memLayout()` added ECC flag, `bios()` added language, features (linux) |
| 5.0.11 | 2021-02-07 | `fsSize()` fixed windows WSL issue |
| 5.0.10 | 2021-02-06 | `getDynamicData()` fixed windows WSL issue |
| 5.0.9 | 2021-02-02 | `fsSize()` fixed parsing edge case issue mac OS |
| 5.0.9 | 2021-02-02 | `fsSize()` fixed parsing edge case issue macOS |
| 5.0.8 | 2021-01-30 | typescript typings fix cpuCurrentSpeed |
| 5.0.7 | 2021-01-29 | `fsSize()` available fixed windows and typescript typings |
| 5.0.6 | 2021-01-28 | `osinfo()` added hypervisor (win only) |
@ -444,7 +449,7 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 4.33.4 | 2020-12-28 | `typescript` typings fix |
| 4.33.3 | 2020-12-27 | `graphics()` updated docs |
| 4.33.2 | 2020-12-27 | `graphics()` fixed issue (nvidia-smi) |
| 4.33.1 | 2020-12-22 | `versions()` fixed issue (mac OS) |
| 4.33.1 | 2020-12-22 | `versions()` fixed issue (macOS) |
| 4.33.0 | 2020-12-21 | `graphics()` nvidia-smi support (linux, windows) |
| 4.32.0 | 2020-12-14 | `graphics()` clinfo support (linux) |
| 4.31.2 | 2020-12-14 | `graphics()` Windows 7 Graphics Fixes (Multi Monitor) |
@ -453,7 +458,7 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 4.30.11 | 2020-12-02 | `cpu()` bug fix speed parsing |
| 4.30.10 | 2020-12-01 | `cpu()` handled speed parsing error (Apple Silicon) |
| 4.30.9 | 2020-12-01 | `cpu()` corrected processor names (Raspberry Pi) |
| 4.30.8 | 2020-11-30 | `fsSize()` catch error (mac OS) |
| 4.30.8 | 2020-11-30 | `fsSize()` catch error (macOS) |
| 4.30.7 | 2020-11-29 | `cpuTemperature()` rewrite hwmon parsing |
| 4.30.6 | 2020-11-27 | wmic added default windows path (windows) |
| 4.30.5 | 2020-11-26 | adapted security update (prototype pollution prevention) |
@ -533,7 +538,7 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| 4.18.3 | 2020-01-10 | `fsSize()` fix excluding loop/snap devices |
| 4.18.2 | 2020-01-10 | `memLayout()` fix memsize linux (modules >= 32 GB) |
| 4.18.1 | 2020-01-07 | updated docs |
| 4.18.0 | 2020-01-07 | `networkInterfaces()` added dhcp for mac os, added dhcp linux fallback |
| 4.18.0 | 2020-01-07 | `networkInterfaces()` added dhcp for macOS, added dhcp linux fallback |
| 4.17.3 | 2020-01-05 | code cleanup |
| 4.17.2 | 2020-01-05 | `cpu().speed` AMD base frequency and fix (0.00) |
| 4.17.1 | 2020-01-04 | `fsSize()` alpine linux support |

View File

@ -31,7 +31,7 @@
## The Systeminformation Project
This is amazing. Started as a small project just for myself, it now has > 19,000
lines of code, > 700 versions published, up to 15 mio downloads per month, > 450
lines of code, > 700 versions published, up to 20 mio downloads per month, > 480
mio downloads overall. Top 10 NPM ranking for backend packages. Thank you to all
who contributed to this project!
@ -539,8 +539,8 @@ Full function reference with examples can be found at
| | [0].serialNum | X | | X | X | | serial number |
| | [0].interfaceType | X | | X | X | | SATA, PCIe, ... |
| | [0].smartStatus | X | | X | X | | S.M.A.R.T Status (see Known Issues) |
| | [0].temperature | X | | | | | S.M.A.R.T temperature |
| | [0].smartData | X | | | X | | full S.M.A.R.T data from smartctl<br>requires at least smartmontools 7.0 |
| | [0].temperature | X | | X | X | | S.M.A.R.T temperature |
| | [0].smartData | X | | X | X | | full S.M.A.R.T data from smartctl<br>requires at least smartmontools 7.0 |
| si.blockDevices(cb) | [{...}] | X | | X | X | | returns array of disks, partitions,<br>raids and roms |
| | [0].name | X | | X | X | | name |
| | [0].type | X | | X | X | | type |

View File

@ -242,8 +242,8 @@
<td>[0].temperature</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>S.M.A.R.T temperature (if available)</td>
</tr>
@ -252,7 +252,7 @@
<td>[0].smartData</td>
<td>X</td>
<td></td>
<td></td>
<td>X</td>
<td>X</td>
<td></td>
<td>full S.M.A.R.T data from smartctl<br>requires at least smartmontools 7.0<br>(see Known Issues)</td>

View File

@ -57,6 +57,30 @@
</tr>
</thead>
<tbody>
<tr>
<th scope="row">5.31.1
</th>
<td>2026-02-17</td>
<td><span class="code">docs</span> updated (security advisory)</td>
</tr>
<tr>
<th scope="row">5.31.0
</th>
<td>2026-02-15</td>
<td><span class="code">diskLayout()</span> added smartmontools support (macOS), <span class="code">versions()</span> fix command injection</td>
</tr>
<tr>
<th scope="row">5.30.8
</th>
<td>2026-02-14</td>
<td><span class="code">wifiNetworks()</span> fixed CWE-78 command injection issue (linux)</td>
</tr>
<tr>
<th scope="row">5.30.7
</th>
<td>2026-01-31</td>
<td><span class="code">networkInterfaces()</span> fixed getWindowsIEEE8021x issue (windows)</td>
</tr>
<tr>
<th scope="row">5.30.6
</th>

View File

@ -166,11 +166,11 @@
<body>
<header class="bg-image-full">
<div class="top-container">
<a href="security.html" class="recommendation">Security advisory:<br>Update to v5.27.14</a>
<a href="security.html" class="recommendation">Security advisory:<br>Update to v5.31.1</a>
<img class="logo" src="assets/logo.png" alt="logo">
<div class="title">systeminformation</div>
<div class="subtitle"><span id="typed"></span>&nbsp;</div>
<div class="version">New Version: <span id="version">5.30.6</span></div>
<div class="version">New Version: <span id="version">5.31.0</span></div>
<button class="btn btn-light" onclick="location.href='https://github.com/sebhildebrandt/systeminformation'">View on Github <i class=" fab fa-github"></i></button>
</div>
<div class="down">
@ -212,7 +212,7 @@
<div class="title">Downloads last month</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
<div class="numbers">941</div>
<div class="numbers">977</div>
<div class="title">Dependents</div>
</div>
</div>

View File

@ -73,10 +73,14 @@
<p><span class="code">node.js</span> and <span class="code">get-WmiObject</span> are not able to determine correct CPU current speed on windows and macOS.
This means, you will have constant values here on both platforms for all processor cores in <span class="code">cpuCurrentSpeed()</span>.</p>
<h4>Linux S.M.A.R.T. Status</h4>
<h4>Linux, Windows, macOS - S.M.A.R.T. Status</h4>
<p>To be able to detect S.M.A.R.T. status on Linux you need to install <span class="code">smartmontools</span>. On DEBIAN based linux distributions you can install it by running:</p>
<p>To be able to detect S.M.A.R.T. status on macOS, Windows and Linux you need to install <span class="code">smartmontools</span>.</p>
<p>On DEBIAN based linux distributions you can install it by running:</p>
<pre>$ sudo apt-get install smartmontools</pre>
<p>On macOS you can install it using <span class="code">brew</span>:</p>
<pre>$ brew install smartmontools</pre>
<p>On windows you can download it from <a href="https://www.smartmontools.org/">https://www.smartmontools.org/</a></p>
<p>If you have smartmontools version >= 7.0 then you will get also full smart data in diskLayout()</p>
<h4>Stats Functions</h4>

View File

@ -44,6 +44,36 @@
<div class="col-12 sectionheader">
<div class="title">Security Advisories</div>
<div class="text">
<h2>versions() Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.31.0<br>
<span class="bold">Date:</span> 2026-02-15<br>
<span class="bold">CVE indentifier</span> CVE-2026-26318
</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by craft the malicious file path for postgres that is then used in <span class="code">versions()</span> on linux machines.</p>
<h4>Patch</h4>
<p>Problem was fixed with parameter checking and execFile. If you are using version 5, please upgrade to version >= 5.31.0.</p>
<hr>
<br>
<h2>wifiNetworks Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.30.8<br>
<span class="bold">Date:</span> 2026-02-14<br>
<span class="bold">CVE indentifier</span> CVE-2026-26280
</p>
<h4>Impact</h4>
<p>We had an issue that there was a possibility to perform a potential command injection possibility by manipulating SSIDs in <span class="code">wifiNetworks()</span> on linux machines.</p>
<h4>Patch</h4>
<p>Problem was fixed with parameter checking. If you are using version 5, please upgrade to version >= 5.30.8.</p>
<hr>
<br>
<h2>fsSize Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.27.14<br>
@ -58,7 +88,6 @@
<p>Problem was fixed with parameter checking. If you are using version 5, please upgrade to version >= 5.27.14.</p>
<hr>
<br>
<h2>SSID Command Injection Vulnerability</h2>
<p><span class="bold">Affected versions:</span>
&lt; 5.23.7<br>

View File

@ -1349,6 +1349,7 @@ function diskLayout(callback) {
resolve(result);
}
if (_darwin) {
let cmdFullSmart = '';
exec('system_profiler SPSerialATADataType SPNVMeDataType SPUSBDataType', { maxBuffer: 1024 * 1024 }, (error, stdout) => {
if (!error) {
// split by type:
@ -1420,6 +1421,7 @@ function diskLayout(callback) {
BSDName: BSDName
});
cmd = cmd + 'printf "\n' + BSDName + '|"; diskutil info /dev/' + BSDName + ' | grep SMART;';
cmdFullSmart += `${cmdFullSmart ? 'printf ",";' : ''}smartctl -a -j ${BSDName};`;
}
}
});
@ -1475,6 +1477,7 @@ function diskLayout(callback) {
BSDName: BSDName
});
cmd = `${cmd}printf "\n${BSDName}|"; diskutil info /dev/${BSDName} | grep SMART;`;
cmdFullSmart += `${cmdFullSmart ? 'printf ",";' : ''}smartctl -a -j ${BSDName};`;
}
}
});
@ -1527,13 +1530,64 @@ function diskLayout(callback) {
BSDName: BSDName
});
cmd = cmd + 'printf "\n' + BSDName + '|"; diskutil info /dev/' + BSDName + ' | grep SMART;';
cmdFullSmart += `${cmdFullSmart ? 'printf ",";' : ''}smartctl -a -j ${BSDName};`;
}
}
});
} catch {
util.noop();
}
if (cmd) {
// check S.M.A.R.T. status
if (cmdFullSmart) {
exec(cmdFullSmart, { maxBuffer: 1024 * 1024 }, (error, stdout) => {
try {
const data = JSON.parse(`[${stdout}]`);
data.forEach((disk) => {
const diskBSDName = disk.smartctl.argv[disk.smartctl.argv.length - 1];
for (let i = 0; i < result.length; i++) {
if (result[i].BSDName === diskBSDName) {
result[i].smartStatus = disk.smart_status.passed ? 'Ok' : disk.smart_status.passed === false ? 'Predicted Failure' : 'unknown';
if (disk.temperature && disk.temperature.current) {
result[i].temperature = disk.temperature.current;
}
result[i].smartData = disk;
}
}
});
commitResult(result);
} catch (e) {
if (cmd) {
cmd = cmd + 'printf "\n"';
exec(cmd, { maxBuffer: 1024 * 1024 }, (error, stdout) => {
const lines = stdout.toString().split('\n');
lines.forEach((line) => {
if (line) {
const parts = line.split('|');
if (parts.length === 2) {
const BSDName = parts[0];
parts[1] = parts[1].trim();
const parts2 = parts[1].split(':');
if (parts2.length === 2) {
parts2[1] = parts2[1].trim();
const status = parts2[1].toLowerCase();
for (let i = 0; i < result.length; i++) {
if (result[i].BSDName === BSDName) {
result[i].smartStatus = status === 'passed' ? 'Ok' : status === 'failed!' ? 'Predicted Failure' : 'unknown';
}
}
}
}
}
});
commitResult(result);
});
} else {
commitResult(result);
}
}
});
} else if (cmd) {
cmd = cmd + 'printf "\n"';
exec(cmd, { maxBuffer: 1024 * 1024 }, (error, stdout) => {
const lines = stdout.toString().split('\n');

View File

@ -434,7 +434,7 @@ function getWindowsIEEE8021x(connectionType, iface, ifaces) {
i8021x.state = i8021xState.split(':').pop();
i8021x.protocol = i8021xProtocol.split(':').pop();
}
} catch {
} catch (error) {
if (error.status === 1 && error.stdout.includes('AutoConfig')) {
i8021x.state = 'Disabled';
i8021x.protocol = 'Not defined';

View File

@ -228,6 +228,7 @@ function osInfo(callback) {
distro: 'unknown',
release: 'unknown',
codename: '',
domain: '',
kernel: os.release(),
arch: os.arch(),
hostname: os.hostname(),
@ -364,6 +365,7 @@ function osInfo(callback) {
workload.push(util.powerShell('(Get-CimInstance Win32_ComputerSystem).HypervisorPresent'));
workload.push(util.powerShell('Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SystemInformation]::TerminalServerSession'));
workload.push(util.powerShell('reg query "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion" /v DisplayVersion'));
workload.push(util.powerShell('Get-CimInstance Win32_ComputerSystem | select Domain | fl '));
util.promiseAll(workload).then((data) => {
const lines = data.results[0] ? data.results[0].toString().split('\r\n') : [''];
result.distro = util.getValue(lines, 'Caption', ':').trim();
@ -378,6 +380,8 @@ function osInfo(callback) {
const codenameParts = data.results[3].split('REG_SZ');
result.codename = codenameParts.length > 1 ? codenameParts[1].trim() : '';
}
const domain = data.results[4] ? data.results[4].toString().split('\r\n') : [''];
result.domain = util.getValue(domain, 'Domain', ':').trim();
if (!result.codename) {
const buildNum = parseInt(result.build, 10);
result.codename = getWindowsRelease(buildNum);
@ -769,9 +773,14 @@ function versions(apps, callback) {
if (_linux) {
exec('locate bin/postgres', (error, stdout) => {
if (!error) {
const postgresqlBin = stdout.toString().split('\n').sort();
const safePath = /^[a-zA-Z0-9/_.-]+$/;
const postgresqlBin = stdout
.toString()
.split('\n')
.filter((p) => safePath.test(p.trim()))
.sort();
if (postgresqlBin.length) {
exec(postgresqlBin[postgresqlBin.length - 1] + ' -V', (error, stdout) => {
execFile(postgresqlBin[postgresqlBin.length - 1], ['-V'], (error, stdout) => {
if (!error) {
const postgresql = stdout.toString().split('\n')[0].split(' ') || [];
appsObj.versions.postgresql = postgresql.length ? postgresql[postgresql.length - 1] : '';

View File

@ -437,8 +437,8 @@ function wifiNetworks(callback) {
const res = getWifiNetworkListIw(ifaceSanitized);
if (res === -1) {
// try again after 4 secs
setTimeout((iface) => {
const res = getWifiNetworkListIw(iface);
setTimeout(() => {
const res = getWifiNetworkListIw(ifaceSanitized);
if (res !== -1) {
result = res;
}

View File

@ -1,6 +1,6 @@
{
"name": "systeminformation",
"version": "5.30.6",
"version": "5.31.1",
"description": "Advanced, lightweight system and OS information library",
"license": "MIT",
"author": "Sebastian Hildebrandt <hildebrandt@plus-innovations.com> (https://plus-innovations.com)",