CVE-2020-27955 - Git 大文件存储/Git LFS (git-lfs) - 远程代码执行 (RCE)

admin 2022年10月10日13:46:52评论88 views字数 865阅读2分53秒阅读模式

技术分析

Git 大文件存储或 Git LFS 是一个开源扩展,用于在 git 存储库之外存储大文件。Git LFS 将大文件存储在远程服务器上,同时将指向该文件的指针存储在 repo 中。


Git LFS (git-lfs) 版本 <= 2.12 有一个漏洞,如果受害者克隆使用 git-lfs 的攻击者存储库,远程攻击者可以在受害者的 Windows 系统上执行任意代码。


当通过以下 ExecCommand() 函数生成新的 git 进程时,Git LFS 没有指定 git 二进制文件的完整路径:


subprocess/subprocess_windows.go:

    func ExecCommand(name string, arg ...string) *Cmd {        cmd := exec.Command(name, arg...)        cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}        cmd.Env = fetchEnvironment()        return newCmd(cmd)    }

如果攻击者在存储库被克隆时将恶意可执行文件放置在存储库中(必须命名为 git.bat、git.exe 或 git.cmd),则执行恶意文件而不是位于受信任的原始 git 二进制文件小路。


这可能导致特权访问并接管被欺骗克隆恶意存储库的 Windows 主机。绝对值得打补丁,尽管由于所需的用户交互级别(他们必须执行克隆)我会说可利用性评级相当低,尽管 CVSS 得分为 9.8


Metasploit 模块

https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/windows/http/git_lfs_rce.rb


更多参考

https://github.com/git-lfs/git-lfs/security/advisories/GHSA-4g4p-42wc-9f3m

原文始发于微信公众号(Ots安全):CVE-2020-27955 - Git 大文件存储/Git LFS (git-lfs) - 远程代码执行 (RCE)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月10日13:46:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2020-27955 - Git 大文件存储/Git LFS (git-lfs) - 远程代码执行 (RCE)https://cn-sec.com/archives/1339178.html

发表评论

匿名网友 填写信息