メールヘッダインジェクション 【email injection】
概要
メールヘッダインジェクション(email injection)とは、Webページ上のフォームなどから電子メールを送信するWebアプリケーションなどに見られる保安上の欠陥(脆弱性)の一つで、メールの制御情報(ヘッダ)を不正に書き換え可能なもの。利用者が件名など制御情報の一部を任意の文字列として指定可能な場合に生じるもので、悪意のある攻撃者が改行を含む入力値を与え、開発者が意図しないヘッダ項目を追加されてしまう。
メールのヘッダ領域はテキスト(文字)形式で、改行によって項目を分割するシンプルな仕様であるため、入力値に改行を挿入すると、以降の内容が新しいヘッダ項目として送信システム側に認識されてしまう。
これにより、本文など後半部分にある内容を改変したり、本来指定できないはずの任意の宛先にメールを送信できるようになり、無差別広告メールやフィッシング詐欺など迷惑メールの送信に悪用される恐れがある。
これを避けるには、ヘッダを完全に固定値として入力値を反映させず、入力内容はすべて本文に記載するか、アプリケーション側で入力値と文字データを組み合わせてメッセージを組み立てることはせず、システム側が用意しているメール送信用のAPIやライブラリなどを利用するのが良いとされる。両方とも難しい場合の応急処置としては、入力値から改行コードを除去したり他の文字に置き換えたりする方法もある。
(2021.12.9更新)