Git 中导致数据泄露和覆盖的漏洞

分布式源代码控制系统 Git 2.38.4、2.37.6、2.36.5、2.35.7、2.34.7、2.33.7、2.32.6、2.31.7 和 2.30.8 的修正版本已发布,其中修复了两个漏洞,影响本地克隆和“git apply”命令的优化。 您可以在 Debian、Ubuntu、RHEL、SUSE/openSUSE、Fedora、Arch、FreeBSD 页面上跟踪发行版中软件包更新的发布情况。 如果无法安装更新,建议作为解决方法,避免在不受信任的存储库上使用“--recurse-submodules”选项执行“git clone”操作,并避免使用“git apply”和“ git am”在不受信任的存储库上执行命令。代码。

  • CVE-2023-22490 漏洞允许控制克隆存储库内容的攻击者获得对用户系统上敏感数据的访问权限。 有两个缺陷导致了漏洞的出现:

    第一个缺陷允许在使用专门设计的存储库时,即使使用与外部系统交互的传输,也可以实现本地克隆优化的使用。

    第二个缺陷允许放置符号链接而不是 $GIT_DIR/objects 目录,类似于漏洞 CVE-2022-39253,该修复阻止了在 $GIT_DIR/objects 目录中放置符号链接,但没有阻止检查 $GIT_DIR/objects 目录本身可能是符号链接这一事实。

    在本地克隆模式下,git 通过取消引用符号链接将 $GIT_DIR/objects 传输到目标目录,这会导致直接引用的文件被复制到目标目录。 切换到对非本地传输使用本地克隆优化允许在使用外部存储库时利用漏洞(例如,使用命令“git clone —recurse-submodules”递归地包含子模块可能会导致克隆打包为子模块的恶意存储库在另一个存储库中)。

  • 漏洞 CVE-2023-23946 允许通过将特制输入传递给“git apply”命令来覆盖工作目录之外的文件内容。 例如,攻击者可以在处理“git apply”中准备的补丁时进行攻击。 为了阻止补丁在工作副本之外创建文件,“git apply”会阻止处理尝试使用符号链接写入文件的补丁。 但事实证明,可以通过首先创建符号链接来绕过这种保护。

来源: opennet.ru

添加评论