sebhildebrandt / systeminformation

System Information Library for Node.JS
MIT License
2.65k stars 300 forks source link

WiFi: Get connection info using UUID instead of SSID #872

Open sylt opened 7 months ago

sylt commented 7 months ago

If you have multiple WiFi interfaces connecting to "YOUR_SSID", the SSID reported back by nmcli might be named "YOUR_SSID \<N>", where \<N> is replaced by a digit. While this is in general no problem, this SSID isn't properly "sanitized" (or escaped?) by util.sanitizeShellString() which leads to that YOUR_SSID and \<N> gets interpreted as separate arguments when passed to nmcli (nmiConnectionLinux()), which in turn makes the information for "YOUR_SSID" to be wrongfully returned.

To avoid the problem of properly escaping the string, just use the UUID for the connection instead for fetching the information, since that should never contain any harmful characters.

(The argument escape problem can probably be solved also by using spawn/spawnSync(), where arguments can be sent as a list instead, and which also returns stdio and stderr as separate objects. Anyhow, perhaps something for the long awaited version 6.)