gitoxide 的 gix-path 可以使用虚假的程序文件位置(CVE-2024-40644)
CVE编号
CVE-2024-40644利用情况
暂无补丁情况
N/A披露时间
2024-07-19漏洞描述
gitoxide是一个纯Rust实现的Git,具有简洁、快速和安全的特点。在Windows系统中,如果一个有限权限的用户账户在一个不受信任的位置放置了另一个`git.exe`,那么`gix-path`可能会被欺骗并执行该位置的`git.exe`。Windows允许没有管理权限的有限用户账户在系统驱动器根目录下创建新目录。虽然`gix-path`最初通过`PATH`搜索查找`git`,但在版本0.10.8中,它还为Windows设计了一个后备策略,检查两个硬编码路径,这些路径旨在作为64位和32位的程序文件目录。现有的函数以及新引入的`exe_invocation`函数都进行了更新,以利用这些替代位置。这导致`gix_path::env`中的工具可以直接在这些位置执行`git.exe`,并向依赖它的调用者返回其路径或任何配置信息。尽管系统驱动器不是`C:`或程序文件目录具有非默认名称的异常情况在技术上是有可能的,但主要问题出现在32位Windows系统上。这样的系统没有`C:\Program Files (x86)`目录。因此,一个运行在32位Windows系统上的有限用户可以在该目录下创建任意内容。通过这种方式在第二个硬编码路径上放置有效载荷后,其他用户账户(包括管理员)如果运行使用`gix-path`的应用程序并且没有在`PATH`目录中拥有`git`,则会执行该有效载荷。(虽然在`PATH`搜索中找到`git`可以防止利用,但仅仅将其安装在默认位置下的真实`C:\Program Files`目录中是不够的。这是因为第一个硬编码路径中的`mingw64`组件假定是64位安装。)只有Windows系统受到影响。除了运行在32位系统上的情况外,不太可能发生利用情况。特别是,在64位系统上运行一个32位构建并不是一个风险因素。此外,攻击者必须在系统上拥有用户账户,尽管它可能是一个相对无权限的账户。这样的用户可以执行特权提升并作为另一个用户执行代码,尽管可能难以可靠地这样做,因为目标用户账户必须运行使用`gix-path`的应用程序或服务,并且不能在其路径中包含git。主要的可利用配置是安装了Git for Windows但没有将其添加到路径中。这是其安装程序中的一个选项(不是默认选项)。另一种情况是,受影响的应用程序清理其路径以删除看似非必要的目录可能会导致利用情况的发生。但在大多数情况下,如果目标用户在配置路径中可以找到真正的git.exe,那么就无法利用这个漏洞。这个问题已在版本0.10.9中得到解决,所有用户建议升级到该版本。对于此漏洞没有已知的解决方法。解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。- 攻击路径 本地
- 攻击复杂度 低
- 权限要求 低
- 影响范围 未更改
- 用户交互 需要
- 可用性 低
- 保密性 高
- 完整性 高
CWE-ID | 漏洞类型 |
Exp相关链接

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论