公開日:2017/03/08 最終更新日:2017/03/08

JVNVU#96141589
PHP FormMail Generator で作成した PHP コードに複数の脆弱性

概要

PHP FormMail Generator は、PHP アプリケーションや WordPress を使って作成されているウェブサイト上に簡易なウェブフォームを埋め込むための PHP コードを生成するウェブサービスです。PHP FormMail Generator によって作成された PHP コードには、複数の脆弱性が存在します。

影響を受けるシステム

  • 2016年12月17日より前に PHP FormMail Generator で生成した PHP コード
PHP FormMail Generator のウェブサイトではバージョン番号は使用しておらず、継続的に更新されています。

詳細情報

危険なタイプのファイルの無制限アップロード (CWE-434) - CVE-2016-9492
生成されたファイル form.lib.php では、ハードコードされた危険なファイル拡張子リストにもとづいて、アップロードされるファイルのチェックを行っています。また、アップロードファイルの末尾に短いランダムな文字列を追加するような処理を行っています。ファイル拡張子リストは PHP ファイルを示すファイル拡張子をすべて含んでいるわけではないので、アップロードされるファイル名を推測された場合、PHP コードを実行される可能性があります。

クロスサイトスクリプティング (CWE-80) - CVE-2016-9493
生成された PHP フォームには name および message フィールドの入力を適切に検証しない問題があります。任意のスクリプトを含む投稿内容がアプリケーションに格納され、管理者が管理画面にアクセスした際に、管理者のウェブブラウザ上で当該スクリプトが実行される可能性があります。

想定される影響

PHP フォームの管理者のウェブブラウザ上で任意のスクリプトが実行される可能性があります。また、アップロードされるファイル名が推測された場合、サーバ上で PHP コードを実行される可能性があります。

対策方法

ワークアラウンドを実施する
次のワークアラウンドを実施することで、本脆弱性の影響を軽減することが可能です。

  • 2016年12月17日以降の PHP FormMail Generator では CVE-2016-9492 の問題に対応した PHP コードを生成します。影響のあるユーザはフォームを再生成するか、手動でパッチを適用してください。
  • 2017年3月8日現在、CVE-2016-9493 の対応が行われているか確認できていません。問題となるフィールドの処理において PHP htmlentities() を適用する形に変更するなどの対策を行ってください。あるいは、当該製品以外のフォームを使用することを検討してください。

ベンダ情報

ベンダ リンク
PHP Form Mail Maker PHP FormMail Generator

参考情報

  1. CERT/CC Vulnerability Note VU#608591
    PHP FormMail Generator generates code vulnerable to multiple issues

JPCERT/CCからの補足情報

JPCERT/CCによる脆弱性分析結果

CVSS v3 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
基本値: 9.8
攻撃元区分(AV) 物理 (P) ローカル (L) 隣接 (A) ネットワーク (N)
攻撃条件の複雑さ(AC) 高 (H) 低 (L)
必要な特権レベル(PR) 高 (H) 低 (L) 不要 (N)
ユーザ関与レベル(UI) 要 (R) 不要 (N)
スコープ(S) 変更なし (U) 変更あり (C)
機密性への影響(C) なし (N) 低 (L) 高 (H)
完全性への影響(I) なし (N) 低 (L) 高 (H)
可用性への影響(A) なし (N) 低 (L) 高 (H)
CVSS v2 AV:N/AC:M/Au:N/C:C/I:C/A:C
基本値: 9.3
攻撃元区分(AV) ローカル (L) 隣接 (A) ネットワーク (N)
攻撃条件の複雑さ(AC) 高 (H) 中 (M) 低 (L)
攻撃前の認証要否(Au) 複数 (M) 単一 (S) 不要 (N)
機密性への影響(C) なし (N) 部分的 (P) 全面的 (C)
完全性への影響(I) なし (N) 部分的 (P) 全面的 (C)
可用性への影響(A) なし (N) 部分的 (P) 全面的 (C)

謝辞

関連文書

JPCERT 緊急報告
JPCERT REPORT
CERT Advisory
CPNI Advisory
TRnotes
CVE CVE-2016-9492
CVE-2016-9493
JVN iPedia