Git 发布了维护版本 v2.39.1,以及旧版本维护 v2.38.3、v2.37.5、v2.36.4、v2.35.6、v2.34.6、v2.33.6、v2.32.5、v2.31.6 和 v2.30.7 。这些维护版本是为了解决安全问题 CVE-2022-41903 和 CVE-2022-23521。
- CVE-2022-41903:
git log 能够使用带有 --format 说明符的任意格式显示提交。 这个功能也通过 export-subst gitattribute 暴露给 git archive。
处理填充运算符时(例如,%<(、%<|(、%>(、%>>( 或 %><( ),整数溢出可能发生在 pretty.c::format_and_pad_commit() 中,其中 size_t 不正确地存储为 int,然后作为偏移量添加到后续的 memcpy() 调用中。
这种溢出可以由用户运行调用提交格式化机制(例如,git log --format=...)的命令直接触发。 它也可以通过 export-subst 机制通过 git archive 间接触发,该机制在 git archive 期间扩展存储库文件内部的格式说明符。
这种整数溢出会导致任意堆写入,这可能会导致远程代码执行。
- CVE-2022-23521:
gitattributes 是一种允许定义路径属性的机制。 这些属性可以通过将 .gitattributes 文件添加到存储库来定义,该文件包含一组文件模式以及应该为匹配该模式的路径设置的属性。
在解析 gitattributes 时,当存在大量路径模式、单个模式的大量属性或声明的属性名称巨大时,可能会发生多个整数溢出。
这些溢出可以通过精心制作的 .gitattributes 文件触发,该文件可能是提交历史的一部分。 当从文件中解析 gitattributes 时,Git 会悄悄地拆分长度超过 2KB 的行,但当从索引中解析它们时则不会。 因此,故障模式取决于文件是否存在于工作树、索引或两者中。
这种整数溢出会导致任意堆读取和写入,这可能会导致远程代码执行。
压缩包下载地址:https://mirrors.edge.kernel.org/pub/software/scm/git/
为您推荐与 git 相关的帖子:
- Git 2.40.0 正式发布
- Git for Windows 2.46.1 发布
- Git for Windows v2.45.2 发布
- Git for Windows v2.45.1 发布
- Git for Windows 2.44.0 发布
- Git 2.43 新特性
- Git for Windows 2.43.0 发布
- Git for Windows v2.42.0 发布
- Git for Windows 2.40.1 发布
- Git 2.40.1 发布,修复三个安全漏洞
- Git for Windows v2.40.0 已发布
- Git for Windows 2.37.0-rc2 发布
- Git for Windows v2.40.0-rc1 发布
- Git for Windows 2.39.2 发布
- Git 2.38 发布,引入巨型仓库管理工具"Scalar"
- Git for Windows 2.37.3 发布
- Git for Windows 2.37.2(2) 发布,将放弃支持 Windows 7/8
- Git for Windows 2.37.1 发布
- Git for Windows 2.37.0 发布
- Git 2.37 正式发布,支持修剪不可达对象、稀疏索引可广泛使用
- Git 2.37发布 面向所有用户引入稀疏索引功能