実質, ウワモノのPHPスクリプトで動くブログパッケージの問題ではないですけど.
Troy Hunt: Everything you need to know about the Shellshock Bash bug
サーバとかよく分からず, ウワモノの WordPress のみで頑張ってる人はプラグインとかありますわ.
チェッカーとして使えます.
入れたらボタン押すだけ.
bash アップデート後にやってみたので, 問題なし.
WordPress › Shellshock Check « WordPress Plugins
詳しいことはよくわからないけど, ここらに書いてる.
CVE-2014-6271
CVE-2014-7169
サーバ内に入れる人は以下で「VULNERABLE」と表示されたらアウト, と.
ほとんど該当してるんじゃないかと思うけど.
env x='() { :;}; echo VULNERABLE' bash -c 'echo hello'
対策は, bash をアップデートするだけ.
yum update bash
apt-get install --only-upgrade bash
対策(アップデート)前だと,
# env x='() { :;}; echo VULNERABLE' bash -c 'echo hello'
VULNERABLE
hello
対策(アップデート)後だと,
# env x='() { :;}; echo VULNERABLE' bash -c 'echo hello'
hello
らしい.
環境変数から, bashコマンドを実行するようです.
ちと, さきほどのPHPで書かれたWPプラグインのコードを見てみる.
以下抜粋.
// CVE-2014-6271
$env = array('SHELL_SHOCK_TEST' => '() { :;}; echo VULNERABLE');
$desc = array(
0 => array('pipe', 'r'),
1 => array('pipe', 'w'),
2 => array('pipe', 'w'),
);
$p = proc_open('bash -c "echo Test"', $desc, $pipes, null, $env);
$output = stream_get_contents($pipes[1]);
proc_close($p);
if (strpos($output, 'VULNERABLE') === false) {
return false;
} else {
return true;
}
// CVE-2014-7169
$desc = array(
0 => array('pipe', 'r'),
1 => array('pipe', 'w'),
2 => array('pipe', 'w'),
);
$p = proc_open(
"rm -f echo; env 'x=() { (a)=>\' bash -c \"echo date +%Y\"; cat echo",
$desc, $pipes, sys_get_temp_dir()
);
$output = stream_get_contents($pipes[1]);
proc_close($p);
$test = date('Y');
if (trim($output) === $test) {
return true;
} else {
return false;
}
true となれば, アウチサバ.
このプラグイン的には,PHPの関数「proc_open()」を使ってやってようですが, 他にもあるはず, shell 実行系の関数.
...
- system — 外部プログラムを実行し、出力を表示する
- exec() - 外部プログラムを実行する
- passthru() - 外部プログラムを実行し、未整形の出力を表示する
- popen() - プロセスへのファイルポインタをオープンする
- escapeshellcmd() - シェルのメタ文字をエスケープする
- pcntl_exec() - 現在のプロセス空間で指定したプログラムを実行する
- バックティック演算子
...
PHP: system - Manual
アプリ開発者 vs サーバ管理者で「おまえらがやれよ」とか不毛なことになったり,
大した理由もなしに, LLからshell叩くようなアプリを作ってたり.
なお、ソースコードからのコンパイルではなく、ディストリビューターが配布しているbashパッケージを導入すれば、CVE-2014-6277/6278として報告されている脆弱性以外は影響を受けない事実を確認できたことも併せて発表している
ニュース - 「ShellShock」は公式パッチでは不十分、JPCERT/CCが追加の注意喚起:ITpro
Shellshockの影響が及ぶケースをまとめてみた - piyolog
けどまあ, それぞれ, いろいろな事情があったりして, いろんなレイヤーで対応策を知ってたほうが, きっとうまくいくだろうと.