今天,Git项目发布了新版本,主要解决用于解决两个安全漏洞,建议所有人都升级个人git客户端,特别是windows下的git客户端。
CVE-2022-24765
漏洞
该漏洞会影响多用户计算机上工作的用户,恶意攻击者可以在这些计算机上受害者当前工作目录的上级共享目录创建.git目录配置设置。比如,Window上,攻击者可以创建C:\.git\config,这将导致所有git在存储库之外发生的调用以读取其配置值。
由于一些配置变量(例如core.fsmonitor)会导致Git执行任意命令,这可能导致在共享机器的任意命令执行。
解决
解决该漏洞的最有效方法是升级到 Git v2.35.2。这个版本改变了Git在配置文件路劲寻时的行为,.git目录遍历从当前用户更改所有权时停止。(如果希望对该行为进行个性化配置,可以使用新配置项目 safe.directory)。
如果不能立即升级,可以使用风险缓解措施:
定义 GIT_CEILING_DIRECTORIES环境变量:
macOS上为/Users,
Linux 上为/home
Windows 上为C:\Users。
一旦当前的工作目录不在受信任的存储库中时,避免在多用户计算机上运行 Git。
请注意,许多Git GUI工具(例如用于Windows的Git安装 Git Bash、posh-git 和 Visual Studio)在都是在后台调用Git shell。 对多用户共享的主机,在升级到最新版本之前避免使用这些工具。
CVE-2022-24767
漏洞
该漏洞影响在用户临时目录中运行的 Git for Windows的卸载程序。 因为 SYSTEM用户帐户继承默认权限 C:\Windows\Temp(全局可写),任何通过身份验证的用户都可以添加恶意.dll加载的文件加载,导致任意命令执行。
解决
防御此漏洞的最有效方法是升级到 Git for Windows v2.35.2。
如果不能马上升级,可以通过以下方式降低风险:
在升级之前避免运行卸载程序。
覆盖SYSTEM用户的TMP环境变量到一个目录,该目录权限为仅仅SYSTEM用户
在运行卸载程序之前删除C:\Windows\Temp目录下的未知数.dll文件。(注意更新本次最新版本,卸载旧版本时候关注该问题)
在管理员帐户下运行卸载程序,而不是以SYSTEM用户运行。
其他功能
新版本中还带来了一些实验性的功能,在安装时候可以选择试用:
下载
请从官方下载git最新版本,并完成升级。
国内用户可以从镜像站下载最新安装包。
下载完成后注意核对安装包的文件哈希,保证其完整性和安全性。