GitHub_Trending/gi/git_rce项目学术研究:CVE-2024-32002缺陷的形式化分析
【免费下载链接】git_rce Exploit PoC for CVE-2024-32002 项目地址: https://gitcode.com/GitHub_Trending/gi/git_rce
缺陷背景与危害
CVE-2024-32002是Git版本控制系统中的一个严重远程代码执行(Remote Code Execution, RCE)缺陷,通过精心构造的仓库结构和子模块配置,攻击者可在受害者执行git clone命令时触发恶意代码。该缺陷主要影响Windows和macOS等大小写不敏感的文件系统环境,利用Git在处理子模块和符号链接(Symbolic Link, 符号链接)时的缺陷实现攻击。
缺陷原理形式化分析
核心攻击链模型
关键技术点解析
-
大小写混淆攻击向量 缺陷利用了大小写不敏感文件系统的特性,通过创建路径为
A/modules/x的子模块目录create_poc.sh,同时构造指向.git目录的符号链接[create_poc.sh#L44-L48],实现对Git内部目录的非法访问。 -
符号链接操纵流程
# 符号链接构造关键代码[create_poc.sh#L44-L48] printf ".git" > dotgit.txt git hash-object -w --stdin < dotgit.txt > dot-git.hash printf "120000 %s 0\ta\n" "$(cat dot-git.hash)" > index.info git update-index --index-info < index.info这段代码通过Git底层命令手动构造指向
.git目录的符号链接,绕过了Git的正常安全检查机制。 -
钩子注入机制 攻击者在子模块中预置恶意钩子脚本[create_poc.sh#L19-L24],当受害者克隆仓库时,钩子脚本会被执行:
# 恶意钩子代码[create_poc.sh#L19-L24] #!/bin/bash echo "amal_was_here" > /tmp/pwnd calc.exe open -a Calculator.app
缺陷复现环境分析
目标系统要求
- 操作系统:Windows或macOS(大小写不敏感文件系统)
- Git版本:未修复CVE-2024-32002的版本
- 权限级别:Windows系统可能需要管理员权限README.md
仓库结构解析
项目采用双层仓库架构实现攻击:
-
主仓库:GitHub_Trending/gi/git_rce
- 攻击脚本:create_poc.sh
- 符号链接构造:captain/a(通过特殊索引操作创建)
-
子模块仓库:hook/
- 恶意钩子:hook/y/hooks/post-checkout
缺陷利用过程形式化建模
阶段一:仓库初始化与恶意代码植入
阶段二:受害者克隆与代码执行
防御与缓解措施
-
更新Git版本 及时应用官方补丁,修复CVE-2024-32002缺陷。
-
禁用递归克隆 避免使用
git clone --recursive命令克隆未知仓库,可改为分步克隆并检查子模块:git clone [仓库URL] cd [仓库目录] # 检查子模块配置后再更新 cat .gitmodules git submodule update --init -
文件系统配置 在macOS上可启用APFS区分大小写模式,Windows系统可考虑使用WSL 2的区分大小写文件系统。
-
钩子安全配置 审查Git配置,限制钩子执行:
git config --global core.hooksPath /dev/null
学术研究价值与扩展方向
本缺陷展示了版本控制系统在复杂文件系统环境下的安全挑战,为以下研究方向提供参考:
-
符号链接安全模型 可进一步研究Git内部符号链接处理机制,建立更严格的路径规范化模型。
-
大小写不敏感文件系统安全 探索跨平台文件系统兼容性与安全的平衡点,开发自动化检测工具。
-
子模块依赖链安全 研究子模块引入过程中的安全验证机制,防止供应链攻击。
附录:关键代码片段索引
- 钩子创建代码:create_poc.sh#L14-L31
- 子模块添加代码:create_poc.sh#L38-L41
- 符号链接构造代码:create_poc.sh#L43-L48
- 缺陷复现命令:README.md#L26-L28
参考文献
- 官方缺陷报告:CVE-2024-32002
- 缺陷分析:README.md
- 攻击脚本:create_poc.sh
【免费下载链接】git_rce Exploit PoC for CVE-2024-32002 项目地址: https://gitcode.com/GitHub_Trending/gi/git_rce
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



