我今天早上上班時閱讀了文章A Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271)。我在我負責的大多數系統上更新了Bash,但是,我被要求在幾臺FreeBSD服務器上升級Bash。如何檢查和升級FreeBSD上的Bash - 與Shellshock bug相關
如何檢查在FreeBSD上運行的是哪個版本的Bash,以及如何修補它以擺脫此漏洞?
我今天早上上班時閱讀了文章A Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271)。我在我負責的大多數系統上更新了Bash,但是,我被要求在幾臺FreeBSD服務器上升級Bash。如何檢查和升級FreeBSD上的Bash - 與Shellshock bug相關
如何檢查在FreeBSD上運行的是哪個版本的Bash,以及如何修補它以擺脫此漏洞?
您可以
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
謝謝,這正是我所期待的。 – 2014-09-26 11:49:19
從this Ask Ubuntu answer,一個命令來檢查這是:
env x='() { :;}; echo vulnerable' bash -c 'echo hello'
如果你vulnerable
,它仍然是脆弱的。
這應該與任何系統上的Bash一起使用以測試漏洞AFAIK。我已在SUSE和Red 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應該包含修復。
您可以檢查使用'回聲$ BASH_VERSION'更換舊
batch
。我無法提供補丁,但一個臨時解決方案是安裝Korn shell(ksh),並使sh成爲ksh的符號鏈接。 Korn shell沒有這個bug,因爲它不支持導出的函數。 – cdarke 2014-09-25 15:56:21有關安裝軟件的問題不是關於編程的問題。 – 2014-09-25 20:00:49
也許它可以被遷移 - 有答案嗎? - 到Unix/Linux或Server SE站點? – 2014-09-25 20:21:45