分布式源代码管理系统 Git 已发布 2.40.1、2.39.3、2.38.5、2.37.7、2.36.6、2.35.8、2.34.8、2.33.8、2.32.7、2.31.8 和 2.30.9 版本补丁。这些补丁修复了五个漏洞。您可以在以下页面跟踪这些发行版的软件包更新: Debian, UbuntuRHEL、SUSE/openSUSE、Fedora、Arch、FreeBSD。为了防止漏洞,建议在使用未经验证的外部补丁时避免运行“git apply --reject”命令,并且在使用不受信任的存储库时,运行“git submodule deinit”、“git config --rename-section”和“git config --remove-section”命令之前,检查$GIT_DIR/config的内容。
CVE-2023-29007 漏洞允许替换 $GIT_DIR/config 配置文件中的设置,该配置文件可用于通过在 core.pager、core.editor 和 core.sshCommand 指令中指定可执行文件的路径来在系统上执行代码。 该漏洞是由于逻辑错误造成的,在对配置文件中的某个节执行重命名或删除操作时,可能会导致非常长的配置值被视为新节的开始。 在实践中,可以通过指定很长的子模块 URL 来实现利用该漏洞的值替换,这些子模块在初始化时保存到 $GIT_DIR/config 文件中。 当尝试通过“git submodule deinit”删除这些 URL 时,这些 URL 可能会被解释为新设置。
漏洞 CVE-2023-25652 允许在使用“git apply –reject”命令处理专门设计的补丁时覆盖工作树外部的文件内容。 如果您尝试使用“git apply”命令执行恶意补丁,并尝试通过符号链接写入文件,则该操作将被拒绝。 在 Git 2.39.1 中,针对符号链接操作的保护已扩展到阻止创建符号链接并尝试通过它们进行写入的补丁。 该漏洞的本质是Git没有考虑到用户可以运行“git apply –reject”命令将补丁中被拒绝的部分写入带有“.rej”扩展名的文件,而攻击者可以使用此功能可将内容写入任意目录,只要当前访问权限允许即可。
此外,还修复了三个平台特有的漏洞。 Windows:CVE-2023-29012(在执行 Git CMD 命令时,在存储库工作目录中搜索可执行文件 doskey.exe,该命令允许您在用户系统上组织代码的执行)、CVE-2023-25815(在 gettext 中处理特制的本地化文件时发生缓冲区溢出)和 CVE-2023-29011(通过 SOCKS5 工作时,connect.exe 文件可能被替换)。
来源: opennet.ru
