ニュース

PHPメール送信用ライブラリ「PHPMailer」「SwiftMailer」「zend-mail」に、ほぼ同種の脆弱性

 PHPからのメール送信に利用されているライブラリ「PHPMailer」と「SwiftMailer」に相次いで発見された、ほぼ同種の脆弱性について、この両方が使われているオープンソースプロジェクト「Yii」では、その影響について発表している。

 SwiftMailerの脆弱性「CVE-2016-10074」は、mailコマンドに余分なパラメータが渡されることで、リモートから任意のコードを実行できるもの。PHPMailerの脆弱性を報告したポーランドのセキュリティ研究者Dawid Golunski氏により、2016年12月28日に報告され、翌29日に提供されたバージョン「5.4.5」で修正されている。

 PHPMailerの脆弱性「CVE-2016-10033」は12月25日、脆弱性「CVE-2016-10045」は12月27日に報告されており、SwiftMailerの脆弱性とほぼ同様のもので、前者はバージョン「5.2.18」以前、後者はバージョン「5.2.20」以前が対象。脆弱性を修正した「5.2.21」がすでに公開されている。

 Yiiでは、SwiftMailerについて、影響を受ける「Swift_MailTransport」クラスは非推奨とされており、これを利用していない場合は影響がないとしている。また、攻撃者がFromやSenderを設定可能な場合にのみ脆弱性の悪用が可能となるため、これらへの入力を正しく検証すれば影響はないとしている。さらに、SwiftMailerのバージョン「6.0」で削除される予定としている。

 PHPMailerに対しては、「Yiiは公式にPHPMailerに関連するメールコンポーネントを提供したことはなく、Yiiチームが公表したコードにPHPMailerをバンドルしたこともない」としている。

 一連の脆弱性を発見したDawid Golunski氏は、zend-mailコンポーネントおよびZend FrameworkのSendmailアダプターについても、PHPMailerやSwiftMailerとほぼ同様の脆弱性「CVE-2016-10034」が存在することを報告している。対象となるのは、「Zend Framework」のバージョン「2.4.11」未満、「zend-mail」のバージョン「2.5.x」「2.6.x」「2.7.2」未満。

 Zend Frameworkでは、この脆弱性への対策として、zend-validatorコンポーネントを使用してFromのアドレスに対する入力を検証することなどを挙げている。

 なお、独立行政法人情報処理推進機構(IPA)と一般社団法人JPCERTコーディネーションセンター(JPCERT/CC)が運営している脆弱性対策情報ポータルサイト「JVN」では、PHPMailerの脆弱性について、影響を受けるコンポーネントを採用しているWordPress、Drupal、Joomla!の各オープンソースプロジェクトが発表している脆弱性対策情報について、リンクを掲載して案内している。