タイトルがすべてを物語っています。
私はまだUbuntu14.04.1とBash4.3-7ubuntu1.4で脆弱です(CVE-2014-6271そしておそらくCVE-2014-7169)
これをチェックしました: https://launchpad.net/ubuntu/+source/bash/4.3-7ubuntu1.4 (新しいバージョンはありません)
テストを実行しました:
_env x='() { :;}; echo vulnerable' bash -c 'echo hello'
_
取得する:
_vulnerable
hello
_
今1週間これに参加しました!
[更新]
私はもともとbash_4.3.orig.tar.gzを https://launchpad.net/ubuntu/+source/bash/4.3-7ubuntu1.4 からインストールしましたが、これは間違いだった可能性があります。
_Sudo apt-get update && Sudo apt-get install bash
_が機能する前にこれを実行しました(私は思います)。
このページには、bash_4.3-7ubuntu1.4.debian.tar.gzとbash_4.3-7ubuntu1.4.dscという他のファイルがあります。これらをどうしたらいいのかわかりません。 bash_4.3-7ubuntu1.4.debian.tar.gzをダウンロードして調べましたが、どうしたらよいかわかりませんでした。
このテストによると、私はまだ脆弱でした:env x='() { :;}; echo vulnerable' bash -c 'echo hello'
Apt-get、dpkg、およびbash_4.3.orig.tar.gzからのインストールを想像できる限り多く実行してみました。それでもテストに失敗します。
私が見つけた:
今朝、何日も回った後、私はついに必死になってHail Maryを投げ、次のスクリプトを試しました: アップグレードできない廃止されたUbuntuシステムでShellshockの脆弱性にパッチを当てるにはどうすればよいですか?
今私が持っています:
それでもテストに失敗します:ログオンするとenv x='() { :;}; echo vulnerable' bash -c 'echo hello'
。だから私は_Sudo /bin/bash
_そして再試行しました。それでも失敗します。
だから私は試しました:
_Sudo apt-get install --only-upgrade bash
_
そして取得...
_Reading package lists... Done
Building dependency tree
Reading state information... Done
bash is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/549 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
dpkg: error processing package bash (--configure):
package is in a very bad inconsistent state; you should
reinstall it before attempting configuration
Errors were encountered while processing:
bash
E: Sub-process /usr/bin/dpkg returned an error code (1)
_
だから私は試しました:
_Sudo apt-get install bash
_
そして取得...
_Reading package lists... Done
Building dependency tree
Reading state information... Done
bash is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/549 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
dpkg: error processing package bash (--configure):
package is in a very bad inconsistent state; you should
reinstall it before attempting configuration
Errors were encountered while processing:
bash
E: Sub-process /usr/bin/dpkg returned an error code (1)
_
もちろん、これは私を驚かせません。
助けてください。
誰かが/ bin/bashと/ usr/local/bin/bashの両方を機能するバージョンで強制的に更新するのを手伝ってもらえますか?このページにあるファイルを使用できますか https://launchpad.net/ubuntu/+source/bash/4.3-7ubuntu1.4 またはGNUインストールをクリーンアップできますか??同様に、1つだけ修正できる場合、bashを/ binから/ usr/local/bin /に(またはその逆に)コピーできますか?
どこにでも見られるapt-getオウムだけでなく、強力なLinuxの答えが必要です。私はすべてを読んだか、またはぶらぶらしました-私が見つけることができるすべての近く。リソースがあれば教えてください。あなたは成功したかもしれませんが、私はトラブルしかありませんでした。
チャットに参加しても問題ありません。
Debianはoriginalアップストリームソースを提供し、次に制御ファイルとローカル変更を提供します。ファイル名の.orig
は、変更されていないことを示しています。 .dsc
は単なるメタデータです。 .debian.tar.gz
ファイル内には、セキュリティ修正を含むすべてのパッチがあります。ビルドプロセスは元のアップストリームを取得し、パッチを適用して、そこからパッケージをビルドします。 Debian(およびUbuntu)は、既知の問題を修正するだけでなく、新しいバージョンが新しいバグやリグレッションを追加するため、アップストリームから新しいバージョンをプルすることに強く偏っています。
Sudo apt-get install --reinstall bash
を実行すると、問題が修正されるはずです-apt-getからの出力はそれを示していますしませんでしたインストールを実行し、構成の更新を試みました。
もし、そしてonly if、そのapt-getが失敗した場合、あなたは次のことをしたい:
ksh
またはzsh
をインストールし、ログインシェルをそれらのいずれかに一時的に設定することを検討してください。Sudo dpkg --remove --force-remove-reinstreq bash
Sudo apt-get install bash
次に、Unixで使用されるマニュアルページシステムに慣れ始めたいと思います。 man
コマンドはここでの友達です。 man apt-get
とman dpkg
は、ここで必要なものをたくさん提供します。
問題は、誤って/usr/local
に不正なバージョンのbashをインストールし、/bin
にすでにより良いバージョンがあることだと思います。だから私は答えがrm /usr/local/bin/bash
だけではない理由がわかりません
OK、それはそれに付属しているすべてのサポートファイルを取り除くわけではありませんが、それは悪いバージョンが実行できないことを確認します。
不良バージョンのmake install
を実行したディレクトリがまだある場合は、そこに移動してmake uninstall
を実行してすべてをクリーンアップできます。まだ持っていない場合は、おそらく解凍して再度ビルドし(最初に使用した./configure
引数と一致していることを確認してください)、make uninstall
を実行できます。
make uninstall
は、元のビルドディレクトリがまだあるGNUプログラムで動作するはずです。 コーディング標準 にあり、すべてGNUソースパッケージは従う必要があります。
Apt-get installbashがバグを取り除くために機能することがわかりました
報奨金が支払われるまで、この回答に賛成票を投じないでください-賛成票を投じる場合。
最初に私を助けてくれた人々に感謝(!)を与え、次に何が起こったのか、何をすべきでないのか、そして何がこの問題を修正したのかを説明したいと思います。だから私と一緒に裸にしてください。私は将来のユーザーのためにこれを行っています。
感謝します:answers.launchpad.netのPaul P(ここ)とManfred Hampl(m-hampl)に謙虚に感謝し、やや鈍感であることをお詫びします。どちらも私がこの問題を解決するのに役立ちました。私はヒーローが必要でした、そして両方とも私のヒーローになるために立ち上がった。私は持っているすべてで両方に感謝します。
実際、チャイムを鳴らしてくれたすべての人に感謝します(!)。すべてに知恵がありました。特に、かけがえのない手がかりを与えてくれたunkilbeeg。もちろん、すぐに飛び込んでくれたサイラスも忘れられません。
何が起こったのか:物事の霧の中で、そしてインストール/更新などすべてのことについての私の重大な無知で、私はページ、意見、リンクをたどり、自分が正しいことをしていると思いました。当初と当時、apt-getには利用可能なパッケージがなかったので、Ubuntuが私に指摘した場所であるlaunchpad.netにカーソルを合わせました。
私が気づかなかったのは、launchpad.netリソースをどうするかということでした。どこかに更新されることを期待して、ベースインストール.gzファイルをインストールしました。簡単に言うと、私が気付いていなかったのは、別のページに.debファイルがあるはずだったということです。 launchpad.netを使用してUbuntuで何かを更新しようとしている場合は、適切な.debファイルを探してください。
Apt-getとlaunchpad.netの間で、問題を深刻に混乱させる2つのバージョンのbashになってしまいました。
さらに悪いことに、提案されたGNU修正があり、それは一部の人にとっては良いかもしれませんが、/ binでbashを壊しました。神に感謝します(!)2つのバージョンがありました。PaulPは私が修正するのを手伝ってくれましたこれは、インストールコマンドを発行してGNUインストールを上書きします。
結局、PaulPとManfredHamplは、私が2つのサイト間を行き来したときと同じトラックにいました。残念ながら、私はPaul Pに対してあまりにも鈍感でした、そしてそれをお詫びします。
知る必要があるのは、unkilbeegが指摘したように$ PATHが重要だったということです。存在する必要があるbashの唯一のバージョン(私の理解と私は鈍感であることを覚えています)は/ binにあるものであり、必要なインストールはapt-getを介して取得するものと、オプションでlaunchpadからのdebファイルのみです。ネット。 PaulPとManfredHamplの両方が、bashの/ usr/local/binバージョンを削除する必要があると指摘していました。それが私がしたことです。結局のところ、/ usr/binを使用していると思っていたのですが、それがユーザーに割り当てられていたため、実際には/ local/usr/binを使用していました。これは、パスの最初にあるためです。いいキャッチ!
これはUbuntuのアドバイスであることを忘れないでください。すべての人に当てはまるとは限りません。
常に(!)可能であれば、最初にapt-getを使用します。次に、launchpad.netを使用して、適切なものを探します。 debファイル。他に何もしないでください。 GNUリソースは貴重ですが、Ubuntuにパッケージを作成させて、それを待つのが最善です。自分が何をしているかを本当に理解していない限り、他のリソースからUbuntuを更新しないでください。
バウンティ:私はすべての人にバウンティの一部を与えるか、少なくともポールPとマンフレッドハンプルの間でそれを分割できればいいのですが、それは不可能です。私はPaulPを受け入れられた回答としてマークし、将来の読者のために彼の回答を更新するように依頼します。彼が私からの情報を必要とするならば、私は喜んでそれを与えます。
もう一度ありがとう:もう一度、チャイムを鳴らしてくれたすべての人に感謝します(!)。単にチャイムを鳴らすことは、あなたが知ることができるよりもはるかに重要です。簡単な手がかりは、困っている人を本当に助けることができます。計り知れないほど気遣うコミュニティのサポート。再度、感謝します