1. 程式人生 > >Git任意代碼執行漏洞檢測與修復(CVE-2018-11235)

Git任意代碼執行漏洞檢測與修復(CVE-2018-11235)

Git任意代碼執行 漏洞修復

檢測漏洞方法

檢測漏洞有兩種方法:

1.通過查看git客戶端版本

git --version

如果版本低於2.13.7肯定存在漏洞
如果版本高於2.13.7請比對下面的版本

版本2.13.x,小於2.13.7則存在漏洞
版本2.14.x ,小於 2.14.4則存在漏洞
版本2.15.x,小於 2.15.2則存在漏洞
版本2.16.x,小於 2.16.4則存在漏洞
版本2.17.x,小於 2.17.1則存在漏洞

2.通過git命令檢測

cd /tmp

git init test && cd test && git update-index --add --cacheinfo 120000,e69de29bb2d1d6434b8b29ae775ad8c2e48c5391,.gitmodules
  • 如果只出現下面的提示,證明存在漏洞

“Initialized empty Git repository in /tmp/test/.git/”

  • 如果出現下面的提示,證明漏洞已被修復

“Initialized empty Git repository in /tmp/test/.git/
error: Invalid path ‘.gitmodules‘
fatal: git update-index: --cacheinfo cannot add .gitmodules”

修復漏洞方法

1.Mac OS

  • 通過brew更新git
    不知道brew是什麽的請自行搜索
brew install git

如果看到下面的提示,表示你需要強制更新

"Error: The brew link step did not complete successfully
The formula built, but is not symlinked into /usr/local"

  • 強制更新命令:
brew link --overwrite git`

更新完畢後,再用上面的方法檢測漏洞
如果出現下面的提示,證明漏洞已被修復!!!
“Initialized empty Git repository in /tmp/test/.git/
error: Invalid path ‘.gitmodules‘
fatal: git update-index: --cacheinfo cannot add .gitmodules”

2.CentOS

找了半天,貌似只能通過源碼安裝,如果有人知道如何yum安裝請私信

cd /tmp
wget https://www.kernel.org/pub/software/scm/git/git-2.17.1.tar.gz
tar zxf git-2.17.1.tar.gz
cd git-2.17.1
sudo ./configure
sudo make
sudo make install

3.Ubuntu

sudo add-apt-repository ppa:git-core/ppa

4.Windows

https://gitforwindows.org/ 可以下載

參考文檔

https://www.edwardthomson.com/blog/upgrading_git_for_cve2018_11235.html
http://blog.nsfocus.net/cve-2018-11235/
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-11235

Git任意代碼執行漏洞檢測與修復(CVE-2018-11235)