CVE-2014-6271 Bashの脆弱性例[重複]

CVE-2014-6271 Bashの脆弱性例[重複]

私は考えられるセキュリティ問題を理解しようとしていますが、CVE-2014-6271私が見るすべてのリンクは次のコマンドだけを提供します。

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

私が得た結果が次のような場合

vulnerable
this is a test

これは私のbashシェルが脆弱であることを意味します。

しかし、それがセキュリティとどのような関係があるのでしょうか?つまり、私のシステムにどんなダメージがかかるのでしょうか?

ベストアンサー1

セキュリティの問題は、bashが悪意のある環境変数のセットで始まる場合、bashがその変数のコードを実行することです。

たとえば、呼び出しがあるとします。このアプリケーションも呼び出される環境変数を使用し、その変数の値がユーザー提供の入力から来ているとします/bin/foo bar。したがって、Webサーバーアプリケーションは環境を設定し、シェルはそれにアクセスします。環境変数を読み取るときに提供された変数にマルウェアがある場合に実行されます。foobazfoo barbashbash

通常、これは問題ではありません。環境変数は完全に安全でなければなりません。変数を使用するアプリケーションが誤動作している場合、これは別の話です。ただし、上記の場合、bash変数は使用されません。baz

たとえば、

テストスクリプト.sh

export BAZ='() { :;}; echo MALICIOUS CODE'
echo starting sleep
/bin/bash -c 'sleep 1'

実行すると、次の情報が得られます。

$ /bin/dash testscript.sh
starting sleep
MALICIOUS CODE

したがって、この変数を設定するだけで、bashに任意のコードを実行するように指示できます。

 

以下は、明示的なシェルを使用せずにbashに言及していない別の例です。

$ perl -e '$ENV{"BAZ"}="() { :;}; echo MALICIOUS CODE"; print("starting sleep\n"); system("/bin/sleep 1;");'
starting sleep
MALICIOUS CODE

(これが機能するには/bin/shbashが必要です)

おすすめ記事