【漏洞通告】Git子模块路径回车符导致远程代码执行漏洞 (CVE-2025-48384)
原文链接: https://mp.weixin.qq.com/s?__biz=MzkzNzY5OTg2Ng==&mid=2247501285&idx=2&sn=1d1391c95628f8b6e92b9e233847c3ba
【漏洞通告】Git子模块路径回车符导致远程代码执行漏洞 (CVE-2025-48384)
启明星辰安全简讯 2025-07-09 07:00
一、漏洞概述
漏洞名称 |
Git子模块路径回车符导致远程代码执行漏洞 |
||
CVE ID |
CVE-2025-48384 |
||
漏洞类型 |
命令执行 |
发现时间 |
2025-07-09 |
漏洞评分 |
8.0 |
漏洞等级 |
高危 |
攻击向量 |
网络 |
所需权限 |
低 |
利用难度 |
高 |
用户交互 |
需要 |
PoC/EXP |
已公开 |
在野利用 |
未发现 |
Git是一个分布式版本控制系统,用于跟踪文件变化并协作开发软件。由Linus Torvalds于2005年创建,Git允许多个开发者并行工作,管理源代码历史记录。它支持本地操作,用户无需连接到中央服务器即可进行版本控制。Git的核心特点包括高效的分支管理、合并功能、以及支持大规模项目的能力。通过命令行和图形界面工具(如GitHub Desktop)可以与Git仓库进行交互,广泛应用于开源和私有软件项目中。
2025年7月8日,启明星辰集团VSRC监测到Git中的一个远程代码执行漏洞,影响类Unix平台。该漏洞源于Git配置文件对回车符(CR)的处理不当。在使用git clone –recursive命令时,Git会从.gitmodules文件读取子模块路径并检出相应的子模块。然而,若子模块路径包含尾部回车符(^M),Git会错误地处理该路径,导致回车符丢失并将路径写入.git/modules/foo/config中,进而使子模块被检出到错误路径。若存在符号链接指向错误路径,并且子模块包含可执行的post-checkout钩子脚本,该脚本可能在检出时意外执行,从而导致远程代码执行(RCE)。此漏洞可被利用通过恶意修改.gitmodules文件或注入回车符来控制子模块检出过程。
二、影响范围
Git <= 2.50.0
三、安全措施
3.1 升级版本
官方已发布修复版本,建议用户升级至如下版本
Git >= 2.43.7
Git >= 2.44.4
Git >= 2.45.4
Git >= 2.46.4
Git >= 2.47.3
Git >= 2.48.2
Git >= 2.49.1
Git >= 2.50.1。
下载链接:
https://github.com/git/git/tags
3.2 临时措施
暂无。
3.3 通用建议
定期更新系统补丁,减少系统漏洞,提升服务器的安全性。
加强系统和网络的访问控制,修改防火墙策略,关闭非必要的应用端口或服务,减少将危险服务(如SSH、RDP等)暴露到公网,减少攻击面。
使用企业级安全产品,提升企业的网络安全性能。
加强系统用户和权限管理,启用多因素认证机制和最小权限原则,用户和软件权限应保持在最低限度。
启用强密码策略并设置为定期修改。
3.4 参考链接
https://github.com/git/git/security/advisories/GHSA-vwqx-4fm8-6qc9
https://nvd.nist.gov/vuln/detail/CVE-2025-48384