CVE-2025-48384:通过回车破坏 Git 并克隆远程代码执行(RCE)

主要观点:在类 Unix 平台上,使用git clone --recursive在不可信仓库时可能导致远程代码执行。需更新 Git 及包含 Git 的其他软件到固定版本,.gitmodules文件的配置格式支持 DOS 行结束符,会导致一些问题,如配置文件读写时对回车字符的处理不当,可能使恶意文件写入文件系统任意位置实现任意文件写入,GitHub Desktop 默认递归克隆易受影响,补丁只需在write_pair中对含回车字符的字符串进行引号处理。这不是 Git 首次因回车字符出问题,之前就有相关漏洞,此为对 Git 审计发现的多个漏洞之一,可类比 HTTP 中的 CRLF 注入等。

关键信息:

  • Unix 用 LF 分离行,Windows 和部分协议用 CR+LF。
  • .gitmodules文件配置格式及处理回车字符的函数get_next_char
  • git config写配置文件的代码及存在的漏洞。
  • .gitmodules中含控制字符的路径在处理时的变化及对克隆子模块的影响。
  • GitHub Desktop 默认递归克隆的风险及相关演示。
  • 修复补丁及可能的利用方式等。

重要细节:

  • get_next_char函数中对回车和换行字符的处理逻辑。
  • write_pair函数中对字符串引号处理的逻辑及漏洞所在。
  • 不同系统对行结束符的处理差异及导致的问题。
  • 审计发现的其他漏洞及今日发布的修复版本等。
阅读 19
0 条评论