debian testing / jessieのShellshockセキュリティ脆弱性を修正するにはどうすればよいですか?


24

テストコマンド

x='() { :;}; echo vulnerable' bash

私のDebian 8(Jessie)のインストールは、最新のアップデートでも脆弱であることを示しています。調査によれば、安定版と不安定版のパッチがありますが、テストはパッチされていません。

パッチは数日でテストに到達するだろうと考えていますが、これは実際には偏執的になるほど厄介に見えます。不安定版からパッケージを取得し、システムを破壊せずにインストールする方法はありますか?不安定版にアップグレードすると、解決するよりも多くの問題が発生するようです。


Bobによると、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でこれを修正するには、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システム用に不安定版からのパッチをさらに必要とする場合、これが明らかに進むべき方法です(必要な変更を加えたものです)。

回答:


5

このリンクからパッケージを不安定版からダウンロードしてください。依存関係も確認できますが、不安定なbashにはテストのbashと同じ依存関係があるようです。ダウンロードしたdebを以下でインストールします。

dpkg -i

1
おかげで、私はそれをして、何も目立って破壊することなく問題を修正しました。おそらく、通常の更新過程で最終的に上書きされますか?
ジョンローレンスアスプデン14

3
GUIでブラウザを実行している場合、上記のリンクは問題ありません。シェルセッションでlynxを実行している場合は、そうではありません。コマンドラインに直接貼り付けて取得できるものが必要な場合は、試してください: wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.1_$(dpkg --print-architecture).deb ボックスに適したアーキテクチャを取得します。
Jemenake 14

1
@Jemenakeそれを別の回答として投稿してください。
Excellll 14

これは間違いなく私が望んでいた答えでしたが、更新がJessieに届いたので、受け入れられた答えが今探している人々が必要とするものである方が良いと思うので、ダニを動かしています。でもありがとう!
ジョンローレンスアスプデン14

実際、2つのシェルショックバグがあり、2番目の修正はsidにありますが、jessieにはないため、実際には正しい答えです(4.3-9.2を入手してください!)すぐに。
ジョンローレンスアスプデン14

25

月曜日にリリースされた追加の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の返事はうまくいくので、彼に賛成票をください!


6
ただ、apt-get update && apt-get install -y bash動作しているようです。
runamok 14

@JabawokJayUKの回答に基づいて、Ubuntu 12.04のbash更新後の最初のテストにまだ失敗しています。
ビルラ14

私は取得していますthis is a testエラーや警告がなく。ローカルマシンではエラーが発生しますが、サーバーではエラーが発生しません。それはどういう意味ですか?サーバーにパッチが適用されていますか?ありがとうございました。
ElBaulP 14

リポジトリは最新のようです。apt-getinstall -yステップを実行する必要がなかったため、アップグレード後に問題はすでに解決されています。
user316566 14

1
これは、Debian testing / jessie についての質問には本当に答えていません。Ubuntuは、独立したパッケージリポジトリとパッチ適用スケジュールを備えた異なるディストリビューションです。
ボブ14

16

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


debian 6で動作します。LTCセキュリティは常にリストに残しておきます!
stanleyxu2005 14

4

apt-get update前にapt-get dist-upgrade、あなたはパッチを取得します。自分でやっただけで、問題を修正するbashアップグレードがプッシュされました。


2
問題は、Debianテストにはまだ更新されたパッケージが含まれていないため、unstableから手動でダウンロードし、インストールすることが当時の最も簡単な修正でした。この回答で示された解決策は機能しませんでした。(たぶん、パッケージがテストに移行した可能性があるため、たぶんそうなるでしょう。)
ウルテル14

これは元の質問には答えませんが、人々が今やるべきことですので、私はそれを受け入れて、人々が最初に目にするものになるようにします。私の難しさに対する「本当の」答え(それは不安定で安定しているがテストではない)は、新しいbash-????。debとdpkg -iの手動ダウンロードを使用したwurtelの答えです。
ジョンローレンスアスプデン14

私はこれがUbuntuの解決策だと思います。彼らは修正を適切にプッシュしたので、おそらく他のDebianベースのディストリビューションはまだ人々が修正をプッシュした時点で維持されています。
ジョンローレンスアスプデン14

実際には、2つのシェルショックバグがあり、2番目のバグの修正はまだjessieに到達していません。
ジョンローレンスアスプデン14

これはまだ有効な解決策であり、Debianテストセキュリティチームが更新をプッシュしている限り残ります。彼らは、OPの質問の時点でのテストでそれを持っていなかったかもしれません。もう1つのオプションは、すべてのユーザーがDashを使用するように設定することです。これは主に、サーバーの問題ではない
MGD_Toronto

3

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$ 

2
...の前に醸造をインストールすることを忘れないでください
マルコスマシエル

1

古いUbuntuバージョンでapt-getを使用してこれを行う方法に関する記事を書きました。基本的に、sources.listを最新に更新してから、apt-get updateを実行し、bashをアップグレードします。ここからステップごとに読むか、コピーして貼り付けることができます

概要:

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

ええと…これにより、sources.listにシステムのTrustyが残ります。次回更新すると、システムはTrustyにアップグレードされます。これにより、システムが著しく破損します。
14

1

2014-09-26 14:18 UTC 現在、Bashパッケージの修正バージョン(changelogを参照)は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'

フォローアップCVE-2014-7169はまだ修正されていません。
ボブ

@ボブ、それはUbuntuにのみ関係があると思う?そして、おそらくUbuntuはすでにそれを修正しているでしょう。
ジョンローレンスアスプデン14

@JohnLawrenceAspdenいいえ。実行してみてくださいenv X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("-印刷された場合still vulnerable、後者のvulnはまだパッチされていません。私の知る限り、ジェシーはまだ脆弱です。このコマンドはecho、成功すると現在のディレクトリに名前の付いたファイルを作成します。テストを再実行する前に、このファイルを削除する必要があることに注意してください。
ボブ14

@ボブ、私はこれの頭や尾を作ることができません、セミコロンまで何をしているのですか?
ジョンローレンスアスプデン14

@Bob、しかしそれが何であれ、あなたは不安定版の4.3-9.2バージョンへのアップグレードがそれを止めることは正しいことです!
ジョンローレンスアスプデン14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.