T

PHPMailerの脆弱性

PHPMailerにリモートから任意のコードを実行出来る脆弱性が見つかっています。popen関数に渡される引数が適切に処理されていないので、入力値に問題があってもそのままコマンドがforkされて実行されてしまいます。WordPressにもwp-includes/class-phpmailer.phpとして組み込まれているので対策が必要です。

とりあえずpopenの前にescapeshellcmdでエスケープ処理を入れて、sendmailコマンドを分割して攻撃するような手口を回避することは出来ます。

//wp-includes/class-phpmailer.phpの396行目に一行追加します:

$sednmail = escapeshellcmd($sendmail); //追加
if(!@$mail = popen($sendmail, "w"))
{
    $this->SetError($this->Lang("execute") . $this->Sendmail);
    return false;
}

アドホックな処理なので、本来は入力値をチェックする必要があるのですが、プラグインを含めるとどこで使われているのか不明なので、とりあえずこれで対策しました。

Posted by on 6月 12, 2007 in PHP, Security, WordPress

コメントを残す