2016-12-27
PHPMailerの脆弱性 CVE-2016-10033についてまとめてみた
脆弱性まとめ | |
2016年12月25日、PHPのメール送信ライブラリPHPMailerに任意のコード実行可能な脆弱性が確認されたとして情報が公開されました。ここでは脆弱性の関連情報をまとめます。
脆弱性の概要
対象 | PHPMailer |
---|---|
CVE | CVE-2016-10033 |
影響 | RCE |
重要度 | Critical(発見者) |
CVSS | N/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氏の公開情報
[Crit. #RCE #0day #vuln] PHPMailer -Patch before the attackers patch it (via a rev. shell ;)https://t.co/raJYd6PsFv #infosec #security #php pic.twitter.com/g1a9m8CGFQ
— Dawid Golunski (@dawid_golunski) 2016年12月26日
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が利用されており、この脆弱性の影響を受けるとして次の名前が挙げられている。
対策
脆弱性実証コード(PoC)
Dawid Golunski氏
- https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html
- https://legalhackers.com/videos/PHPMailer-Exploit-Remote-Code-Exec-Vuln-CVE-2016-10033-PoC.html (12/27準備中)
opsxcq氏
CVE-2016-10033の影響を受ける可能性がある対象
「影響あり」となるパターンは次の通り。
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以上の環境で抜けるパターンが存在する模様。
PHPMailerの問題、PCRE入っててもNGですね。
— cakephper (@cakephper) 2016年12月27日
PCREがなくて、かつPHP5.2以上だとfilter_varが使われるので救われる。
PHP5.2以上は全てPHPのfilter_varを使ってメールアドレスを検証するようにすれば良いのに・・PCRE優先なんだよな
CVE-2016-10033の調査、まとめなど
- 【CVE-2016-10033】PHPMailerに重大な脆弱性 - Qiita
- 【CVE-2016-10033】PHPMailerに重大な脆弱性 - Qiita
- 【更新中】「PHPMailer」に重大な脆弱性……ってこれ、WordPressでも使われてるじゃねーか! - Qiita
更新履歴
- 2016年12月27日 PM 新規作成