在 Git 源代码版本控制系统中发现的两个关键缺陷

admin 2023年1月19日19:31:46评论69 views字数 1360阅读4分32秒阅读模式

在 Git 源代码版本控制系统中发现的两个关键缺陷

Git 源代码版本控制系统的维护者宣布已在其软件中修复了几个关键漏洞,分别跟踪为 CVE-2022-23521 和 CVE-2022-41903。

这些漏洞是在OSTIF赞助的源代码版本控制系统的安全源代码审计中发现的,该审计由X41和GitLab的安全专家小组执行。

威胁参与者可以利用这些漏洞来实现远程代码执行。这些漏洞影响版本 <= v2.30.6、v2.31.5、v2.32.4、v2.33.5、v2.34.5、v2.35.5、v2.36.3、v2.37.4、v2.38.2 和 v2.39.0。修补的版本包括 v2.30.7、v2.31.6、v2.32.5、v2.33.6、v2.34.6、v2.35.6、v2.36.4、v2.37.5、v2.38.3 和 v2.39.1。

CVE-2022-41903 是“git 存档”、“git log –格式”中的整数溢出,可能导致在 git 中远程执行代码。“Git 是分布式版本控制系统。“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 归档期间扩展存储库内文件的格式说明符。

preject 的维护者建议无法立即更新其安装的用户在不受信任的存储库中禁用“git archive”,以缓解 CVE-2022-41903 漏洞。

第二个问题(跟踪为 CVE-2022-23521)是解析整数溢出的 gitattributes 问题。“Git 是分布式版本控制系统。gitattributes 是一种允许为路径定义属性的机制。这些属性可以通过向存储库添加“.gitattributes”文件来定义,该文件包含一组文件模式以及应为与此模式匹配的路径设置的属性。解析 gitattributes 时,当存在大量路径模式、单个模式的大量属性或声明的属性名称巨大时,可能会发生多个整数溢出。阅读公告。“这些溢出可以通过精心制作的'.gitattributes'文件触发,该文件可能是提交历史记录的一部分。Git 在解析文件中的 gitattributes 时以静默方式拆分长度超过 2KB 的行,但在从索引解析它们时则不会。因此,失败模式取决于文件是否存在于工作树和/或索引中。这种整数溢出可能导致任意堆读取和写入,这可能会导致远程代码执行。

“总之,Git 代码库显示了几个安全问题,代码库的庞大规模使得解决这些问题的所有潜在实例具有挑战性。作为短期策略,使用安全包装器可以提高软件的整体安全性。作为一种长期的改进策略,我们建议在限时代码库重构冲刺和随后的安全审查之间交替使用,“Eric Sesterhenn和发现问题的Markus Vervier发表的报告总结道。


原文始发于微信公众号(黑猫安全):在 Git 源代码版本控制系统中发现的两个关键缺陷

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月19日19:31:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   在 Git 源代码版本控制系统中发现的两个关键缺陷https://cn-sec.com/archives/1521786.html

发表评论

匿名网友 填写信息