Bash 脆弱性 -ShellShock- (5) CVE-2014-6271 で fix されていない CVE-2014-7169 の脆弱性って何か確認してみました

こんにちは。

グローバルソリューション事業部の bash-er 担当宇野です。

CVE-2014-6271 は以下の問題があることを確認しましたが、CVE-2014-7169 に関してはあまり日本の情報ソースが少ないので、調べてみました。

 (追記)2014/09/26 15:10(JST)時点でCVE-2014-7169のパッチがリリースされたようです。

http://techblog.clara.jp/2014/09/bash-vulnerability-vol1-verification/

 ■情報元

コードはこれのようです。

 

■検証

検証環境は以下の通りです。

CentOS 6.5
bash-4.1.2-15.el6_5.1.x86_64(CVE-2014-6271 対応済みの bash)

実際に試してみましした。

 

 

本来であれば「X」の引数に「 () { (a)=>\’」が代入され、「date」という文字列を「echo」(表示)するだけでなのですが、実際には「echo」というファイル名が生成され、その中に「date」コマンドを実行した結果がリダイレクト「>」(ファイル生成して保存)されています。

 

コードが無い場合のコマンドを試してみます。

 

ファイルは生成されませんでした。本来のコマンドが実行されています。
コマンドとしては、以下のコマンドが実行されているようです。(あくまでも推測です)

 

実際にコマンドを試してみます。

このコマンドの意味ですが、「date」コマンドの結果が「echo」というファイルにリダイレクト「>」(ファイルを生成して保存)するコマンドです。
話を戻して、今回のコードの問題は、シングルクオート「’」で囲まれている場合、コマンドは実行できないはずですが、実際にはコマンドを実行していることでしょうか。

 

分かりやすい例を以下に記します。

 

上記コマンドは、「bash -c ‘echo date ‘」という文字列を「echo」する(表示する)コマンドですが、シングルクオート「’」内で指定しているコマンドは実行されていません。

 

bash の各種記号(メタ文字)の意味に関してはIPproさんのページが分かりやすいと思います。

・シェル・スクリプト・リファレンス【 メタ文字の取り扱い 】
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231046/
では、CVE-2014-6271 のように HTTP_USER_AGENT を使ってコマンドを引き渡せるか・・・
確認してみましたがうまく渡せませんでした。
CVE-2014-6271 の場合「;」より後に記載することで引き渡せますが、今回はシングルクオートというメタ文字の中でもかなり特殊な記号のためか、引き渡すことが難しいようでした。(引き続きいろいろと試してみますが、、)

 

ここで注意ですが、弊社の検証でうまく出来なかったとしても他の方法でもリモートでコマンドが実行可能である可能性がゼロではないため、安心はできません。

 

パッチがリリースされたら速やかにupdateされることを推奨いたします。
なお、2014/09/26 11:30(JST)時点では CVE-2014-7169 のパッチはリリースされていないようです。 

(追記)2014/09/26 15:10(JST)時点でパッチがリリースされたようです(rikenのミラーを確認済み)。cent6環境で上記コードも解消されていることを確認しました
引き続き続報があればご連絡致します。

Share on LinkedIn
LINEで送る
Pocket

uno

uno

cobaltサーバやbluequartz大好き、bash大好きなclaraの中の人です。