ブログトップ 記事一覧 ログイン 無料ブログ開設

piyolog RSSフィード

2016-12-27

PHPMailerの脆弱性 CVE-2016-10033についてまとめてみた

| 01:01 |  PHPMailerの脆弱性 CVE-2016-10033についてまとめてみたを含むブックマーク

2016年12月25日、PHPのメール送信ライブラリPHPMailerに任意のコード実行可能な脆弱性が確認されたとして情報が公開されました。ここでは脆弱性の関連情報をまとめます。

脆弱性の概要

対象PHPMailer
CVECVE-2016-10033
影響RCE
重要度Critical(発見者)
CVSSN/A
PoCインターネット上に公開済(2016/12/26)
発見者/報告者Dawid Golunski氏(@dawid_golunski)
PHPMailer
タイムライン
日時出来事
2016年12月24日CVE-2016-10033を修正したPHPMailer 5.2.18公開
2016年12月25日CVE-2016-10033の脆弱性情報公開
2016年12月26日脆弱性の実証コード公開

脆弱性情報

Dawid Golunski氏の公開情報

SNAS

影響を受けるPHPMailerバージョン

  • PHPMailer 5.2.18未満のバージョン

Version 5.2.18 (December 24th 2016)

SECURITY Critical security update for CVE-2016-10033 please update now! Thanks to Dawid Golunski.

Add ability to extract the SMTP transaction ID from some common SMTP success messages

Minor documentation tweaks

https://github.com/PHPMailer/PHPMailer/blob/master/changelog.md

影響を受けるCMS

複数のソフトウェアでPHPMailerが利用されており、この脆弱性の影響を受けるとして次の名前が挙げられている。

対策

ソフトウェア脆弱性情報等
PHPMailerhttps://github.com/PHPMailer/PHPMailer/commit/4835657cd639fbd09afd33307cef164edf807cdc
WordPressUpdate PHPMailer to 5.2.19
Critical Vulnerability in PHPMailer. Affects WP Core
DrupalPHPmailer 3rd party library -- DRUPAL-SA-PSA-2016-004
Joomla!PHPMailer Security Advisory

脆弱性実証コード(PoC)

Dawid Golunski氏
opsxcq氏

CVE-2016-10033の影響を受ける可能性がある対象

  • 次の「影響あり」のパターンにおいて、メール送信時に指定されるFROMに信頼できないデータが入る実装がされている場合(=自分でチェックを行っていない場合)はこの脆弱性の影響を受ける可能性がある。

「影響あり」となるパターンは次の通り。

PHPのバージョンPCREの有無影響の有無
5.2.0未満あり影響あり
無し影響あり
5.2.0以上あり影響あり
無し影響無し

opsxcq氏の公開したPoCでは「非常に特殊な条件が満たされた場合にリモートのサーバーに対し侵害が可能となる」と説明されていた。

PHPMailer before its version 5.2.18 suffer from a vulnerability that could lead to remote code execution (RCE). If a very specific condition is met, a remote server can be compromised. This condition is specified in Vulnerable Code section bellow.

「非常に特殊な条件」については次の内容とされている。

* PHPMailer < 5.2.18
* Compile PHP without PCRE.
* PHP version must be inferior to 5.2.0.

あるいは$patternselectに「noregex」が指定された場合がこの条件に該当*1する模様。opsxcq氏が公開した脆弱性の検証環境でもその指定が書き加えられている。

一方で Dawid Golunski氏が公開したPoCにはそのような条件記述は見受けられない。ichikawayさんの調査によればPCREが入ったPHP5.2以上の環境で抜けるパターンが存在する模様。

CVE-2016-10033の調査、まとめなど

更新履歴

  • 2016年12月27日 PM 新規作成

*1メールアドレスが「@」が存在しているかの検証しか行われなくなる