gix-path 错误地解析了 Git 报告的配置路径(CVE-2024-45405)
CVE编号
CVE-2024-45405利用情况
暂无补丁情况
N/A披露时间
2024-09-06漏洞描述
在 `gix-path` 项目中,存在一个路径处理及其转换的问题。在版本 0.10.11 之前,`gix-path` 会运行 `git` 来查找与 `git` 安装关联的配置文件路径,但它在处理包含特殊或非 ASCII 字符的路径时存在不当解析的情况,这在极少数情况下允许本地攻击者注入配置,从而导致代码执行。版本 0.10.11 对这个问题进行了修复。在 `gix_path::env` 中,`installation_config` 和 `installation_config_prefix` 函数的底层实现会调用 `git config -l --show-origin` 来查找属于 `git` 安装的文件路径。受影响的 `gix-path` 版本没有传递 `-z`/`--null` 参数,导致 `git` 报告字面路径。相反,为了处理偶尔出现的 `git` 输出带引号路径的情况,它们尝试通过去除引号来解析路径。问题是,当路径被引号包围时,它可能会以引号之外的方式发生实质性的变化。如果不进行反转,这些变化可能会导致另一个有效的路径,该路径与原始路径不等效。在单用户系统上,除非 `GIT_CONFIG_SYSTEM` 和 `GIT_CONFIG_GLOBAL` 被设置为异常值或以异常方式安装 Git,否则无法利用此漏洞。这种情况并不常见。即使在多用户系统上,利用此漏洞的可能性也较小,但在某些非常规配置或用例中仍然存在可能。一般来说,如果预期用户自行安装 `git` 并可能在可预测的位置安装它,那么利用此漏洞的可能性更大;无论用户名是否在路径中或其他原因,Git 默认在路径中引用诸如非英文字母和带音标的字母等字符;使用 `GIT_CONFIG_SYSTEM` 环境变量指定自定义的 system-scope 配置文件,且其路径位于异常位置或具有奇怪的组件名称;或者 system-scope 配置文件缺失、为空或通过除 `GIT_CONFIG_NOSYSTEM` 以外的其他方式被抑制。目前,如果更高范围的配置文件不可用,`gix-path` 可以将 global-scope 配置文件视为属于安装的一部分。这增加了即使在系统上以常规方式安装 Git 的情况下利用漏洞的可能性。然而,即使在所有这些因素的组合下,利用此漏洞也被认为是非常困难的。解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。- 攻击路径 N/A
- 攻击复杂度 N/A
- 权限要求 N/A
- 影响范围 N/A
- 用户交互 N/A
- 可用性 N/A
- 保密性 N/A
- 完整性 N/A
CWE-ID | 漏洞类型 |
Exp相关链接

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