最近使っていなかったのも原因ですが、そんなの理由になりませんよね。
Wikipedia を読んでみたら、脆弱性は1992年から眠っていたとか。
アップデートがリリースされているので、適用した。
OS X bash Update 1.0 – OS X Mavericks
Shellshock 祭り(?)の発端となったバグ CVE-2014-6271 の脆弱性を確認するコマンド。"vulnerable" の文字が表示された場合には脆弱性あり。
env x='() { :;}; echo vulnerable' bash -c 'echo test'
● 脆弱性あり
● 対策済み
ただ、これ以外にも5件、合わせて6件の脆弱性が9月27日までに発見されている。字句解析コードにバグがあったことが原因。
- CVE-2014-6271 (事の発端となった上記の脆弱性)
- CVE-2014-7169
- CVE-2014-7186
- CVE-2014-7187
- CVE-2014-6277
- CVE-2014-6278
テストコードは次の通り。
(OS X の方はアップデートしてしまったので) 仮想マシン上で放置されていた bash 4.3.11 on Ubuntu 14.04 で試してみた結果も合わせて記録しておいた。
● CVE-2014-6271 (再掲)
任意のコード "echo CVE-2014-6271" が実行されてしまう。$ env x='() { :;}; echo CVE-2014-6271' bash -c 'echo test'
● CVE-2014-7169
任意のコード "echo CVE-2014-7169" が実行されてしまう。(CVE-2014-6271 の修正漏れだそうな。)下記コマンド実行後に、"cat echo" とコマンドを打つと、"echo CVE-2014-7169" が実行される。
$ env x='() { (a)=>\' bash -c "echo echo CVE-2014-7169"; cat echo
● CVE-2014-7186
DoS攻撃に利用できるらしい。"echo "CVE-2014-7186"" が実行された。"<<EOF" を減らすとエラーが出て、コマンドは実行されない。$ bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo "CVE-2014-7186"
● CVE-2014-7187
これまた。ただ、再現しなかった。$ (for x in {1..200} ; do echo "for x$x in ; do :"; done; for x in {1..200} ; do echo done ; done) | bash || echo "CVE-2014-7187"
● CVE-2014-6277
任意のコードを実行できるらしい。Segmentation fault (core dumped) が発生。断片コードと書かれていたので、これだけでは無理っぽいですが。$ env x='() { x() { _; }; x() { _; } <<a; }' bash -c :
● CVE-2014-6278
任意のコード "echo CVE-2014-6278" が実行されます。$ env x='() { _; } >_[$($())] { echo CVE-2014-6278; }' bash -c :
参考:
Shellshock (software bug) - Wikipedia, the free encyclopedia
Bash bug: the other two RCEs, or how we chipped away at the original fix (CVE-2014-6277 and '78) 他
0 件のコメント :
コメントを投稿