Git任意代碼執行漏洞檢測與修復(CVE-2018-11235)
檢測漏洞有兩種方法:
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
如果看到下面的提示,表示你需要強制更新
brew link
step did not complete successfullyThe 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)