web-dev-qa-db-ja.com

Ubuntu14.04.1とBash4.3-7ubuntu1.4でShellshockに対してまだ脆弱です-次は何ですか?

タイトルがすべてを物語っています。

私はまだUbuntu14.04.1とBash4.3-7ubuntu1.4で脆弱です(CVE-2014-6271そしておそらくCVE-2014-7169)

  • apt-get update =なし
  • apt-get upgrade =なし
  • apt-get install bind =なし

これをチェックしました: 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からのインストールを想像できる限り多く実行してみました。それでもテストに失敗します。

私が見つけた:

  • / usr/local/bin/bash-GNU bash、バージョン4.3.0(1)-リリース(i686-pc-linux-gnu)
  • / bin/bash-GNU bash、バージョン4.3.11(1)-リリース(i686-pc-linux-gnu)

今朝、何日も回った後、私はついに必死になってHail Maryを投げ、次のスクリプトを試しました: アップグレードできない廃止されたU​​buntuシステムでShellshockの脆弱性にパッチを当てるにはどうすればよいですか?

今私が持っています:

  • / bin/bash-GNU bash、バージョン4.3.27(1)-リリース(i686-pc-linux-gnu)

それでもテストに失敗します:ログオンすると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の答えが必要です。私はすべてを読んだか、またはぶらぶらしました-私が見つけることができるすべての近く。リソースがあれば教えてください。あなたは成功したかもしれませんが、私はトラブルしかありませんでした

チャットに参加しても問題ありません。

3
closetnoc

Debianはoriginalアップストリームソースを提供し、次に制御ファイルとローカル変更を提供します。ファイル名の.origは、変更されていないことを示しています。 .dscは単なるメタデータです。 .debian.tar.gzファイル内には、セキュリティ修正を含むすべてのパッチがあります。ビルドプロセスは元のアップストリームを取得し、パッチを適用して、そこからパッケージをビルドします。 Debian(およびUbuntu)は、既知の問題を修正するだけでなく、新しいバージョンが新しいバグやリグレッションを追加するため、アップストリームから新しいバージョンをプルすることに強く偏っています。

Sudo apt-get install --reinstall bashを実行すると、問題が修正されるはずです-apt-getからの出力はそれを示していますしませんでしたインストールを実行し、構成の更新を試みました。

もし、そしてonly if、そのapt-getが失敗した場合、あなたは次のことをしたい:

  1. 別のシェルがインストールされていることを確認してください。これにより、bashの削除中にグリッチが発生しても、システムからロックアウトされません。 kshまたはzshをインストールし、ログインシェルをそれらのいずれかに一時的に設定することを検討してください。
  2. Sudo dpkg --remove --force-remove-reinstreq bash
  3. Sudo apt-get install bash

次に、Unixで使用されるマニュアルページシステムに慣れ始めたいと思います。 manコマンドはここでの友達です。 man apt-getman dpkgは、ここで必要なものをたくさん提供します。

2
Phil P

問題は、誤って/usr/localに不正なバージョンのbashをインストールし、/binにすでにより良いバージョンがあることだと思います。だから私は答えがrm /usr/local/bin/bashだけではない理由がわかりません

OK、それはそれに付属しているすべてのサポートファイルを取り除くわけではありませんが、それは悪いバージョンが実行できないことを確認します。

不良バージョンのmake installを実行したディレクトリがまだある場合は、そこに移動してmake uninstallを実行してすべてをクリーンアップできます。まだ持っていない場合は、おそらく解凍して再度ビルドし(最初に使用した./configure引数と一致していることを確認してください)、make uninstallを実行できます。

make uninstallは、元のビルドディレクトリがまだあるGNUプログラムで動作するはずです。 コーディング標準 にあり、すべてGNUソースパッケージは従う必要があります。

2
user240960

Apt-get installbashがバグを取り除くために機能することがわかりました

1
user373746

報奨金が支払われるまで、この回答に賛成票を投じないでください-賛成票を投じる場合。

最初に私を助けてくれた人々に感謝(!)を与え、次に何が起こったのか、何をすべきでないのか、そして何がこの問題を修正したのかを説明したいと思います。だから私と一緒に裸にしてください。私は将来のユーザーのためにこれを行っています。

感謝します: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を受け入れられた回答としてマークし、将来の読者のために彼の回答を更新するように依頼します。彼が私からの情報を必要とするならば、私は喜んでそれを与えます。

もう一度ありがとう:もう一度、チャイムを鳴らしてくれたすべての人に感謝します(!)。単にチャイムを鳴らすことは、あなたが知ることができるよりもはるかに重要です。簡単な手がかりは、困っている人を本当に助けることができます。計り知れないほど気遣うコミュニティのサポート。再度、感謝します

1
closetnoc