• 公告ID (KylinSec-SA-2024-3517)

摘要:

git security update

安全等级: Critical

公告ID: KylinSec-SA-2024-3517

发布日期: 2024年5月24日

关联CVE: CVE-2024-32002   CVE-2024-32004   CVE-2024-32020   CVE-2024-32021   CVE-2024-32465  

  • 详细介绍

1. 漏洞描述

   

Git是一个免费开源的分布式版本控制系统,旨在快速高效地处理从小型到大型的所有项目。Git易于学习,占用空间小,性能闪电般快。它超越了Subversion、CVS、Perforce和ClearCase等SCM工具,具有廉价的本地分支、方便的暂存区和多个工作流等功能。

安全修复:

Git是一个版本控制系统。在版本2.45.1、2.44.1、2.43.4、2.42.2、2.41.1、2.40.2和2.39.4之前,可以利用Git中的一个漏洞来构建带有子模块的存储库,通过这个漏洞,它可以被欺骗,将文件写入“.Git/”目录,而不是子模块的工作树。这允许编写一个在克隆操作仍在运行时执行的钩子,使用户没有机会检查正在执行的代码。该问题已在版本2.45.1、2.44.1、2.43.4、2.42.2、2.41.1、2.40.2和2.39.4中修复。如果Git中禁用了符号链接支持(例如通过`Git config--global core.symlinks false `),则所描述的攻击将不起作用。与往常一样,最好避免从不受信任的来源克隆存储库。(CVE-2024-32002)

Git是一个版本控制系统。在版本2.45.1、2.44.1、2.43.4、2.42.2、2.41.1、2.40.2和2.39.4之前,攻击者可以准备一个本地存储库,这样在克隆时,将在操作过程中执行任意代码。该问题已在版本2.45.1、2.44.1、2.43.4、2.42.2、2.41.1、2.40.2和2.39.4中修复。作为一种解决方法,避免从不受信任的来源克隆存储库。(CVE-2024-32004)

Git是一个版本控制系统。在版本2.45.1、2.44.1、2.43.4、2.42.2、2.41.1、2.40.2和2.39.4之前,当源和目标存储库位于同一磁盘上时,本地克隆最终可能会将文件硬链接到目标存储库的对象数据库中。如果源存储库由其他用户拥有,则这些硬链接文件可能会在任何时间点被不受信任的用户重写。克隆本地存储库将导致Git将源存储库的文件复制或硬链接到目标存储库中。与“正确”克隆相比,这大大加快了此类本地克隆的速度,并节省了磁盘空间和计算时间。当克隆位于与当前用户不同的用户拥有的同一磁盘上的存储库时,我们最终也会创建这样的硬链接。这些文件将继续由可能不受信任的用户拥有和控制,并且将来可以由他们随意重写。该问题已在版本2.45.1、2.44.1、2.43.4、2.42.2、2.41.1、2.40.2和2.39.4中修复。(CVE-2024-32020)

Git是一个版本控制系统。在版本2.45.1、2.44.1、2.43.4、2.42.2、2.41.1、2.40.2和2.39.4之前,当通过文件系统克隆包含符号链接的本地源存储库时,Git可能会在“objects/”目录中创建指向与目标存储库位于同一文件系统上的任意用户可读文件的硬链接。在文件系统上克隆本地存储库可能会在目标Git存储库的“objects/”目录中创建指向同一文件系统上任意用户所有文件的硬链接。在文件系统上克隆存储库时(不明确指定“file://”协议或“--no local”),本地克隆的优化

将使用,包括尝试硬链接目标文件而不是复制它们。虽然该代码包括对源代码库中符号链接的检查,这些符号链接是在CVE-2022-39253的修复过程中添加的,但这些检查仍然可以进行,因为硬链接操作最终会遵循符号链接。如果文件系统上的对象在检查期间显示为文件,然后在操作期间显示为符号链接,这将允许对手绕过检查,并在目标对象目录中创建指向任意用户可读文件的硬链接。该问题已在版本2.45.1、2.44.1、2.43.4、2.42.2、2.41.1、2.40.2和2.39.4中修复。(CVE-2024-32021)

Git是一个版本控制系统。Git项目建议避免在不受信任的存储库中工作,而是首先使用“Git clone--no local”进行克隆,以获得干净的副本。Git具有特定的保护措施,即使在不受信任的源代码存储库中也能确保安全操作,但漏洞允许绕过这些保护。在克隆其他用户拥有的本地存储库的情况下,CVE-2024-2004中涵盖了此漏洞。但在某些情况下,CVE-2024-2004的修复是不够的:例如,当获取包含Git存储库完整副本的.zip文件时,默认情况下不应该相信它是安全的,因为例如钩子可以配置为在该存储库的上下文中运行。该问题已在版本2.45.1、2.44.1、2.43.4、2.42.2、2.41.1、2.40.2和2.39.4中修复。作为一种解决方法,避免在通过不可信来源的存档获得的存储库中使用Git。(CVE-2024-32465)

2. 影响范围

cve名称 产品 组件 是否受影响
CVE-2024-32002 KY3.4-5A git Fixed
CVE-2024-32002 KY3.5.2 git Fixed
CVE-2024-32004 KY3.4-5A git Fixed
CVE-2024-32004 KY3.5.2 git Fixed
CVE-2024-32020 KY3.4-5A git Fixed
CVE-2024-32020 KY3.5.2 git Fixed
CVE-2024-32021 KY3.4-5A git Fixed
CVE-2024-32021 KY3.5.2 git Fixed
CVE-2024-32465 KY3.4-5A git Fixed
CVE-2024-32465 KY3.5.2 git Fixed

3. 影响组件

    git

4. 修复版本

   

KY3.4-5A

软件名称 架构 版本号
git-help noarch 2.27.0-20.kb1.ky3_4
git-web noarch 2.27.0-20.kb1.ky3_4
gitk noarch 2.27.0-20.kb1.ky3_4
git-gui noarch 2.27.0-20.kb1.ky3_4
git-svn noarch 2.27.0-20.kb1.ky3_4
git-email noarch 2.27.0-20.kb1.ky3_4
perl-Git noarch 2.27.0-20.kb1.ky3_4
perl-Git-SVN noarch 2.27.0-20.kb1.ky3_4
git x86_64 2.27.0-20.kb1.ky3_4
git-daemon x86_64 2.27.0-20.kb1.ky3_4
git aarch64 2.27.0-20.kb1.ky3_4
git-daemon aarch64 2.27.0-20.kb1.ky3_4

KY3.5.2

软件名称 架构 版本号
git-web noarch 2.33.0-15.ky3_5
git-gui noarch 2.33.0-15.ky3_5
git-svn noarch 2.33.0-15.ky3_5
perl-Git-SVN noarch 2.33.0-15.ky3_5
perl-Git noarch 2.33.0-15.ky3_5
gitk noarch 2.33.0-15.ky3_5
git-email noarch 2.33.0-15.ky3_5
git-help noarch 2.33.0-15.ky3_5
git-daemon x86_64 2.33.0-15.ky3_5
git x86_64 2.33.0-15.ky3_5
git-core x86_64 2.33.0-15.ky3_5
git-daemon aarch64 2.33.0-15.ky3_5
git aarch64 2.33.0-15.ky3_5
git-core aarch64 2.33.0-15.ky3_5

5. 修复方法


方法一:下载安装包进行升级安装
1、通过下载链接下载需要升级的升级包保存,如 xxx.rpm
2、通过rpm命令升级,如 rpm -Uvh xxx.rpm

方法二:通过软件源进行升级安装
1、保持能够连接上互联网
2、通过yum命令升级指定的包,如 yum install 包名

6. 下载链接

   

KY3.4-5A:

x86_64:

     git-help   

     git-web   

     gitk   

     git-gui   

     git-svn   

     git-email   

     perl-Git   

     perl-Git-SVN   

     git   

     git-daemon   

aarch64:

     git-help   

     git-web   

     gitk   

     git-gui   

     git-svn   

     git-email   

     perl-Git   

     perl-Git-SVN   

     git   

     git-daemon   

KY3.5.2:

x86_64:

     git-web   

     git-gui   

     git-svn   

     perl-Git-SVN   

     perl-Git   

     gitk   

     git-email   

     git-help   

     git-daemon   

     git   

     git-core   

aarch64:

     git-web   

     git-gui   

     git-svn   

     perl-Git-SVN   

     perl-Git   

     gitk   

     git-email   

     git-help   

     git-daemon   

     git   

     git-core   

上一篇:KylinSec-SA-2024-3516 下一篇:KylinSec-SA-2024-3518