CVE-2026-40029parseusbs是一款用于解析USB取证工件的工具。在1.9版本之前,该软件在parseUSBs.py文件中存在严重的操作系统命令注入漏洞。问题源于程序在处理LNK文件路径时,未能对其进行充分的清洗,直接将其传递给os.popen()函数执行。攻击者可以利用这一缺陷,通过创建包含Shell元字符的特殊.lnk文件名,诱导取证分析人员在解析过程中触发恶意命令。一旦成功,攻击者即可在受害者的机器上执行任意代码,造成数据泄露、篡改或系统服务不可用等严重后果。
该漏洞的核心原因在于不安全的输入处理和直接调用系统Shell。在parseusbs的源代码parseUSBs.py中,当解析USB设备取证信息时,程序需要处理LNK文件(Windows快捷方式)。开发人员使用了Python的os.popen()函数来执行系统命令以读取或解析这些文件。然而,传递给os.popen()的参数直接来自LNK文件的文件路径字符串,且未经过任何过滤或转义处理。由于os.popen()会调用系统的Shell(如/bin/sh或cmd.exe),如果文件路径中包含Shell元字符(如`;`, `&`, `|`, `$()`等),Shell会将其解释为命令分隔符或子命令调用。攻击者可以构造一个恶意的USB设备,其中的LNK文件名类似于`normal.lnk; whoami; #`。当取证工具解析该文件时,Shell会先执行正常的LNK解析命令,紧接着执行攻击者注入的`whoami`命令,然后忽略#后的内容。由于攻击向量为本地(AV:L)且需要用户交互(UI:R),通常需要攻击者物理接触设备或通过社会工程学诱导分析师加载恶意的取证镜像文件。