2014-09-25 40 views
2

我今天早上上班時閱讀了文章A Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271)。我在我負責的大多數系統上更新了Bash,但是,我被要求在幾臺FreeBSD服務器上升級Bash。如何檢查和升級FreeBSD上的Bash - 與Shellshock bug相關

如何檢查在FreeBSD上運行的是哪個版本的Bash,以及如何修補它以擺脫此漏洞?

+0

您可以檢查使用'回聲$ BASH_VERSION'更換舊batch。我無法提供補丁,但一個臨時解決方案是安裝Korn shell(ksh),並使sh成爲ksh的符號鏈接。 Korn shell沒有這個bug,因爲它不支持導出的函數。 – cdarke 2014-09-25 15:56:21

+0

有關安裝軟件的問題不是關於編程的問題。 – 2014-09-25 20:00:49

+0

也許它可以被遷移 - 有答案嗎? - 到Unix/Linux或Server SE站點? – 2014-09-25 20:21:45

回答

8

您可以

pkg info bash 

驗證bash安裝版本的bash的修補版本already in the ports tree,因此,你可以像任何應用程序進行升級。

一旦bash已被包材農場重建了,你可以如果你不熟悉pkg你應該閱讀appropriate chapter in the Handbook升級bash,你會升級任何包,與

pkg upgrade bash 

重要說明。在寫它的時候似乎包尚不可用,所以這裏是手動步驟從來源建立自己的包:

在嘗試升級之前請務必upgrade your ports tree

2.將你的shell中的端口目錄,並建立

cd /usr/ports/shell/bash 
make BATCH=yes build 

make BATCH=yes deinstall 
make BATCH=yes reinstall 
+0

謝謝,這正是我所期待的。 – 2014-09-26 11:49:19

0

this Ask Ubuntu answer,一個命令來檢查這是:

env x='() { :;}; echo vulnerable' bash -c 'echo hello' 

如果你vulnerable,它仍然是脆弱的。

這應該與任何系統上的Bash一起使用以測試漏洞AFAIK。我已在SUSERed Hat Linux上進行了測試,但它們不是BSD。要檢查版本,它應該是類似於其他系統:

$ echo $BASH_VERSION 
4.3.11(1)-release 
$ bash --version 
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu) 
Copyright (C) 2013 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 

This is free software; you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. 

FreeBSD forums的更多信息,下載/安裝補丁程序。從該鏈接:

4.3.25之前的一切都是脆弱的,4.3.25應該包含修復。

相關問題