您现在的位置是:首页 > 文章详情

Git 2.39.1 发布,修复两个安全问题

日期:2023-01-18点击:300

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/

原文链接:https://www.oschina.net/news/225465/got-2-39-1-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章