CVE-2014-6271 は影響の大きい重大な修正です。 Linux システムを実行している場合は、この脆弱性を修正する必要があります。
この CVE-2014-6271 (および CVE-2014-7169) の脆弱性は、シェルショックとも呼ばれます。
Bash が特別に細工された特定の環境変数を評価する方法に欠陥が見つかりました。攻撃者はこの欠陥を利用して、環境制限をオーバーライドまたはバイパスしてシェル コマンドを実行する可能性があります。特定のサービスとアプリケーションでは、認証されていないリモートの攻撃者が環境変数を提供して、この問題を悪用することができます。
bash シェルを使用すると、この脆弱性により、攻撃者は環境でランダムなシェル コマンドを実行できます。この背後にある考え方は、攻撃者が環境変数の制限を回避して、シェル コマンドを実行できるようにすることです。
Linux サーバーで実行されている一部のサービス (またはアプリケーション) では、認証されていない攻撃者がいくつかの環境変数を指定できる可能性があることに注意してください。これにより、攻撃者は認証なしでネットワーク経由でこの脆弱性を悪用できるようになります。
これを修正するには、bash を最新バージョンにアップグレードするだけです。たとえば、RedHat または CentOS では、次の手順を実行してこの問題を修正します:
yum update bash
あなたのシステムは CVE-2014-6271 に対して脆弱ですか?
RedHat は、システムが脆弱かどうかをテストするために、次のスクリプトを提供しています。
出力に「脆弱」という単語が表示された場合、システムは脆弱です。
env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
出力に「脆弱」という単語とともにエラーメッセージが表示される場合があることに注意してください。たとえば、以下は脆弱な RedHat 5 および RedHat 6 (および CentOS 5 および 6) システムの出力です。
# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test" vulnerable bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)' bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable' bash: error importing function definition for `BASH_FUNC_x' test
修正前の Bash バージョン
問題を修正する前に、現在の bash のバージョンを確認してください。 RedHat 5 (および CentOS 5) では、修正前に次のバージョンの bash を使用していました:
# rpm -qa | grep bash bash-3.2-24.el5
RedHat 6 (および CentOS 6) では、修正前に次のバージョンの bash を使用していました:
# rpm -qa | grep bash bash-4.1.2-3.el6.x86_64
CVE-2014-6271 を修正
ここで、yum (または適切なディストリビューションの他のパッケージ管理ユーティリティ) を使用して bash を更新します
yum update bash
RedHat 5 (および CentOS 5) で、脆弱性を修正した更新後の bash バージョンは次のとおりです。
# rpm -qa | grep bash bash-3.2-33.el5_11.4
RedHat 6 (および CentOS 6) で、脆弱性を修正した更新後の bash バージョンは次のとおりです。
# rpm -qa | grep bash bash-4.1.2-15.el6_5.2.x86_64
修正後に CVE-2014-6271 の脆弱性をテストする
bash を最新バージョンにアップグレードした後、テストを実行すると、次のコマンド出力に「脆弱」という単語が表示されなくなります。以下に示す警告とエラー メッセージは問題ありません。
# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test" bash: warning: x: ignoring function definition attempt bash: error importing function definition for `BASH_FUNC_x' test
CVE-2014-7169 はどうですか?
最初の修正がリリースされた後、redhat は CVE-2014-6271 の修正が不完全であることを発見し、bash はいくつかの特別な状況下で環境変数に入れることができる文字をまだほとんど許可していませんでした.
前の手順で yum update bash を実行すると、CVE-2014-7169 の修正も含まれる最新バージョンの bash が自動的に取得されます。したがって、この修正のために特に何もする必要はありません。
ただし、システムで次のコマンドを実行することにより、システムがこの問題に対して脆弱ではないことを確認するテストを行うことができます:
cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
CVE-2014-7169 に対して脆弱なシステムでは、次のようにファイル /tmp/echo が作成され、ファイルの内容が表示されます。
次の出力が表示された場合は、「yum update bash」を使用して bash を最新バージョンに更新する必要があります (または、ディストリビューションに適したパッケージ管理ユーティリティを使用します)。
# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo bash: x: line 1: syntax error near unexpected token `=' bash: x: line 1: `' bash: error importing function definition for `x' Fri Sep 26 16:15:09 PDT 2014
システムが CVE-2014-7169 に対して脆弱でない場合、次の出力が表示され、/tmp/echo ファイルが作成されません。
# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo date cat: /tmp/echo: No such file or directory
追加情報
- RedHat Web サイトの CVE-2014-6271、CVE-2014-7169 に関する詳細
- CVE-2014-6271 に関する RedHat (CentOS、Fedora) Bugzilla レポート
- CVE-2014-7169 に関する RedHat (CentOS、Fedora) Bugzilla レポート
- CVE-2014-7169 に関する Oracle セキュリティ アラート – Solaris または Oracle Enterprise Linux の場合
- Ubuntu CVE-2014-7169
- Debian CVE-2014-7169