テストコマンド
x='() { :;}; echo vulnerable' bash
Debian 8 (Jessie)のインストールは、最新のアップデートであっても脆弱です。調査によると、安定版と不安定版のパッチがあるが、そのテストにはパッチが適用されていない。
私はパッチが数日でテストすることになると思いますが、これは実際には偏執狂であるには十分に厄介に見えます。システムを壊さずにパッケージを不安定版から取得してインストールする方法はありますか?不安定版にアップグレードすると、解決するよりも多くの問題が発生するように見えます。
ボブによると、2つ目のShellshockの脆弱性があり、2つ目のパッチで修正されています。それのテストは次のようになっているはずです:
env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("
しかし、私はこれが何を意味するのか、なぜそれが問題なのかを解明するのに十分なBashのスキルはありません。とにかく、それは奇妙なことをします、それは64ビットシステムのbash_4.3-9.2_AMD64.debによって阻止されます、それは編集時に安定して不安定ですがではありませんJessie/ testing。
Jessieでこれを修正するには、unstableから最新のBashを取得し、dpkg -i
を使用してインストールします。
Jemenakeオファー
wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.2_$(dpkg --print-architecture).deb
マシンの4.3-9.2バージョンを取得するコマンドとして。
そして、あなたはそれに続くことができます:
Sudo dpkg -i bash_4.3-9.2_$(dpkg --print-architecture).deb
それをインストールします。
Jessieシステムの不安定版からさらにパッチが必要な場合、これは明らかに(mutatis mutandis)への道です。
このリンク を使用して、unstableからパッケージをダウンロードします。不安定なbashはテストのbashと同じ依存関係を持っているようですが、そこでも依存関係を確認できます。ダウンロードしたdebを以下でインストールします。
dpkg -i
月曜日にリリースされた追加のbash修正のためにこの回答を編集しました。
Ubuntu 12.04の場合、アップデートを実行しましたが、脆弱性を取り除くためにbashのインストールも実行する必要がありました。
root@Host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
このコマンドは、システムが脆弱であることを示しているため、アップデートを実行します。
apt-get update && apt-get -y upgrade
もう一度テストしてください。
root@Host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
まだ脆弱です。
apt-get install -y bash
もう一度テストしてください。
root@Host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
編集:追加のパッチがリリースされた後、出力が変更されました。
root@Host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test
わーい!修繕。これは他のバージョンでも機能するはずですが、12.04以降ではテストしていません。
また、以下のrunamokの返信はうまく機能するので、彼に賛成票を入れてください
Debian 7(Wheezy)からパッケージをフェッチせずに、Debian 6.0(Squeeze)の代替:
パッチがバックポートされたLTSセキュリティリポジトリを使用します。
これを/etc/apt/sources.list
に追加:
#LTS security
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free
次に、apt-get update && apt-get install bash
を実行します。
経由: linuxquestions
apt-get update
前 apt-get dist-upgrade
とパッチを取得します。自分でやっただけで、問題を修正するbashアップグレードがプッシュされました。
私は Hackintosh で修正しました:
$ brew install bash
$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
bash-4.3$
古いバージョンのUbuntuでapt-getを使用してこれを行う方法についての記事を書きました。基本的に、sources.listを最新に更新してから、apt-get updateを実行してbashをアップグレードします。ステップごとに読み取るか、 here からコピーして貼り付けます。
概要:
Sudo sed -i 's/YOUR_OS_CODENAME/trusty/g' /etc/apt/sources.list
Sudo apt-get update
Sudo apt-get install --only-upgrade bash
Old-releases.ubuntu.comを使用していて、元に戻す場合があることを忘れないでください。
Sudo sed -i 's/trusty/YOUR_OS_CODENAME/g' /etc/apt/sources.list
Bashパッケージの修正バージョン( changelog を参照)は、2014年9月26日14:18 UTC時点で、Debian 8(Jessie)に含まれています( パッケージ情報 を参照)。 。
以下のコメントで言及されている2番目の修正は、Jessieリポジトリにもあります。不安定版からインストールする必要はありません。上記のパッケージ情報リンクを参照してください。
不安定版からインストールする必要はもうありません。
とにかく走れ:
# aptitude update
に続く:
# aptitude upgrade
次に、脆弱性がなくなったことを確認します(新しく開いたシェルで)。
$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'