PHP工房トップ

HOME > InternetExplorer11におけるクロスサイトスクリプティングの脆弱性対策について

メールフォームプログラムにおけるクロスサイトスクリプティングの脆弱性発覚について

2014/7/10

情報処理推進機構 IPA様よりご連絡をいただいた、ある特定の条件下で発生する脆弱性に対応するためソースコードの一部を修正。また既存ファイルの修正方法についてもこのページに掲載致しました。

実際には特異な複数の条件が揃わなければ発生しないことから、現在設置中のフォームが即問題となる可能性は低いと考えられますが、念のため以下手順にて修正いただきますようお願い致します。
※設置サイト、及びそのサイトの運営者(管理者)、関係者等が直接被害を受けるようなものではありません。
尚、今現在実害の報告等はいただいておりません。

セキュリティについては十分に注意、検証しておりましたが、結果としてこのような事態となり、お手数、ご迷惑をおかけし大変申し訳ございませんでした。
今後このようなことが無いよう細心の注意を払って参る所存です。

-- 脆弱性に該当する製品名およびバージョン
PHP多機能メールフォームプログラム全バージョン(フリー版、有料版問わず)
※2014/7/10以前にダウンロードされた方
※ただし、2012/10/28以前のバージョンの場合には該当しません(脆弱性自体存在しません)
確認済対象ブラウザ:InternetExplorer11

-- 脆弱性の内容
悪意のある第三者が作成した罠ページへ誘導された場合に、特定のリンクをクリックさせることによって任意のスクリプトが実行される可能性。
(まずはこの「罠ページへ誘導される」の時点で現実的にはかなり厳しい条件かと思います)

-- 脆弱性への対応方法と適用方法
最新版をダウンロードいただき、既存のmail.phpを差し替えていただくか、
すでに導入済みの場合には以下手順にて既存ファイル(mail.php)を修正して下さい。 1箇所のみです。

mail.phpの261行目付近以下の箇所
※行数はバージョンによって異なりますが、以下記述は1箇所のみなので探してみてください
※2012/10/28以前のバージョンではこの記述自体ありませんので脆弱性もございません。

<input type="hidden" name="httpReferer" value="<?php echo $_SERVER['HTTP_REFERER'];?>">

または以下(後ろに半角スペースがあるバージョンもあるため、全文検索時に一致しない場合は以下で検索下さい)

<input type="hidden" name="httpReferer" value="<?php echo $_SERVER['HTTP_REFERER'] ;?>">

を以下へ修正下さい。( $_SERVER['HTTP_REFERER'] h()で囲むだけです。または以下上書きコピペでOKです)

<input type="hidden" name="httpReferer" value="<?php echo h($_SERVER['HTTP_REFERER']);?>">

お手数ですが、修正後は必ず送信テストを行っていただき、問題の無いことをご確認下さい。
問題が出た場合にはお気軽にお問い合わせよりご連絡下さい。

-- 謝辞
発見者様並びに情報処理推進機構 IPA様、JPCERT/CC 脆弱性ハンドリングチーム様にはこの場を借りて感謝申し上げます。

参考:http://jvn.jp/jp/JVN41028866/

PHPメールフォーム(無料版)

PHPメールフォーム(有料版)

新着情報・更新履歴CMS(無料版)

投票・アンケートシステム(無料版)

テロップCMS(無料版)

写真ギャラリーCMS(無料版)

営業日カレンダーCMS(無料版)

営業日カレンダーCMS(有料版)

カレンダー予約フォーム(無料版)

カレンダー予約フォーム(有料版)

リンク集ページCMS(無料版)

アクセスカウンター(無料版)

ダウンロードカウンター(無料版)

その他

メールフォームの各種カスタマイズならお任せ下さい
業務効率化が可能なPHPオリジナルCMS制作します

役立つかも?なもの

豆知識や役立ち事など

PHPについて

各種情報