
CVE 2022-45299
#受影响的库:
webbrowser.rs 0.8.3 之前的版本 https://github.com/amodm/webbrowser-rs
#摘要:
该库未能验证提供的输入是否为真正的 URL。因此,攻击者如果能够控制传递给 webbrowser::open(URL) 的未经过滤的 URL,就可以提供一个本地文件路径,该路径将在默认文件管理器中打开,或者向底层的 open 命令传递一个参数,以执行任意已注册的系统命令。
#详情:
webbrowser::open 在 Windows 上内部调用 shellExecuteW,并将 URL 作为参数传递给 open。在 Windows 上,攻击者控制了传递给 shellExecuteW 的 lpFile 参数,从而可能打开任意本地文件。
如果攻击者能够传入一个实际上是 open 命令行开关的 URL,他们可能能够启动任意命令(或者执行 open 允许它们用单个参数执行的任何操作)。例如,webbrowser::open(".") 会在当前工作目录打开 Finder。此外,只需提供脚本文件的路径即可执行 Python 脚本,我也成功用其他编译型或脚本型语言实现了这一点。我无法在 Linux 上复现该问题,但通过提供文件路径即可加载诸如 /etc/passwd 之类的本地文件。
#漏洞代码:

#POC:
