一、 基本情况
GitPython 是一个用于与 Git存储库交互的 Python 库。
二、 漏洞描述
GitPython中修复了一个代码执行漏洞(CVE-2024-22190),其CVSSv3评分为7.8,目前该漏洞的细节及PoC已公开。
该漏洞源于CVE-2023-40590 的修复不完善。在Windows 上,如果 GitPython 使用 shell 来运行git,以及当它运行bash.exe来解释hooks时,它会使用不受信任的搜索路径并可能执行在不受信任的搜索路径中找到的程序。如果在Windows上使用这些功能中的任何一个,则可能导致从不受信任的存储库中运行恶意git.exe或bash.exe,从而导致任意代码执行。
三、 影响范围
GitPython < 3.1.4
四、 修复建议
目前该漏洞已经修复,受影响用户可升级到GitPython 版本3.1.4。
下载链接:
https://github.com/gitpython-developers/GitPython/releases
临时措施
Windows上的缓解措施:
1. 当使用shell时,将NoDefaultCurrentDirectoryInExePath传递到子进程环境中,因为子进程就是实际执行路径搜索的cmd.exe shell。
2. 在使用bash.exe子进程运行hooks的Popen调用期间,在GitPython进程环境中设置NoDefaultCurrentDirectoryInExePath。
五、 参考链接
https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-2mqj-m65w-jghx
https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-wfm5-v35h-vwf4