CVE-2014-6271
読み:スィーヴィーイー-にーゼロいちよん-ろくにーなないち
外語:CVE-2014-6271
bashに存在した脆弱性の一つ。インジェクション攻撃に対する脆弱性。通称「Shellshock」。
2014(平成26)年9月24日に修正パッチが公開されたが修正が不完全で、修正で新たな脆弱性CVE-2014-7169も報告された。ここでは両者を合わせて説明する。
概要
MITRE社の脆弱性情報データベースCommon Vulnerabilities and Exposures(CVE)に登録されている脆弱性の一つ。
これは、bashの欠陥により、任意のOSコマンドが実行される可能性がある、極めて重大なセキュリティホールである。
- 影響: bash 4.3 Official Patch 25 およびそれ以前
- 影響: bash 4.2 Official Patch 48 およびそれ以前
- 影響: bash 4.1 Official Patch 12 およびそれ以前
- 影響: bash 4.0 Official Patch 39 およびそれ以前
- 影響: bash 3.2 Official Patch 52 およびそれ以前
- 影響: bash 3.1 Official Patch 18 およびそれ以前
- 影響: bash 3.0 Official Patch 17 およびそれ以前
特徴
問題
bash起動時、環境変数を経由して関数定義を渡す場合に細工をすると、任意のコマンドを実行させることができる。
bashは、Linux等のシステムではほぼ必ずインストールされるパッケージであるため、影響が大きい。
Red Hat Security Blogの情報では、脆弱性のあるバージョンで以下を実行すると、"echo vulnerable" の部分が予期せず実行されるとしている。
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
問題がある場合の結果
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
$
問題が修正されている場合の結果
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test
$
なお、Debian GNU/LinuxやUbuntuの場合、標準はdashでありbashではないので、bashに置き換えていない限りは再現しない。
原因
bashは、環境変数内に関数が定義されている場合にそれを実行するという仕様があるが、この処理に問題があった。
再検索