在广泛使用的 Node.js 系统信息包中发现了一个严重的命令注入漏洞 (CVE-2024-56334),该信息包的月下载量超过 800 万次,总下载量达到惊人的 3.3 亿次。该漏洞可允许攻击者执行任意操作系统命令,根据软件包的使用情况,有可能导致远程代码执行(RCE)或权限升级。
该漏洞源于获取网络 SSID 信息的 getWindowsIEEE8021x 函数中的命令注入漏洞。该函数在将 SSID 作为参数传递给 cmd.exe 之前,未能对其进行正确的消毒。因此,攻击者可以在 Wi-Fi 网络的 SSID 中嵌入恶意命令,然后在调用 getWindowsIEEE8021x 函数时在易受攻击的系统上执行这些命令。
安全研究人员 xAiluros 发现了 CVE-2024-56334 漏洞,并通过在 Windows 服务中提升权限演示了该漏洞的潜在影响。攻击者可以通过创建一个带有恶意 SSID 的 Wi-Fi 热点来利用这个漏洞。当有漏洞的系统连接到该网络时,攻击者嵌入在 SSID 中的命令就会被执行,从而可能导致远程代码执行或权限升级。
两个有效载荷示例展示了利用的可能性:
-
无限泛洪 Ping
SSID: a” | ping /t 127.0.0.1 & -
执行恶意文件
SSID: a” | %SystemDrive%\a\a.exe &
连接到恶意 Wi-Fi 网络后,在使用软件包的应用程序中执行易受攻击的函数,例如:
const si = require('systeminformation');
si.networkInterfaces((net) => { console.log(net) });
就能触发攻击,在受害者机器上运行有效载荷。
systeminformation “5.23.6(含 5.23.6)以下版本受此漏洞影响。维护者已发布 5.23.7 版,解决了这一问题。强烈建议该软件包的所有用户立即更新到最新版本。