← 脆弱性解説一覧
CRITICAL 9.8CVE-2014-6271 | 2014年9月

ShellShock

LinuxやmacOSで広く使われているBashに25年間存在した脆弱性。 Webサーバー・ルーター・組み込み機器など数億台のデバイスが影響を受けた。


概要

ShellShockはBash(Bourne Again SHell)の環境変数処理に存在した脆弱性です。 Bashは環境変数に関数定義を格納できますが、その処理に欠陥があり、 関数定義の後に続くコマンドが実行されてしまいました。 CGIスクリプトやDHCPクライアントなど、環境変数を介してBashを呼び出す あらゆる仕組みが攻撃対象になりました。

攻撃の仕組み

以下のような環境変数を設定するだけで任意のコマンドが実行されました。

# 攻撃例(HTTPリクエストのUser-Agentヘッダーを悪用)
User-Agent: () { :; }; /bin/bash -c 'cat /etc/passwd'

WebサーバーがCGIスクリプトでBashを呼び出す場合、 HTTPヘッダーが環境変数として渡されるため、 攻撃者はリクエストヘッダーに悪意あるコードを仕込むだけで サーバー上でコマンドを実行できました。

タイムライン

1989年頃
脆弱なコードがBashに導入される(約25年間見逃される)
2014年9月24日
Stéphane Chazelasが発見・報告
2014年9月24日
修正パッチリリースと同時に一般公開
2014年9月25日
最初のパッチが不完全と判明、追加CVEが登録される
2014年9月26日
世界中でCGIサーバーへの攻撃が急増

対策

推奨Bashを最新バージョンにアップデート
推奨CGIスクリプトでBashの使用を避け、shやdashに切り替え
緩和策WAFでShellShock攻撃パターンをブロック
緩和策不要なCGIスクリプトを無効化

参考リンク

NVD - CVE-2014-6271CISA Alert - Shellshock