0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

WordPress 同梱のPHPMailer 脆弱性の対応(メールの件名バグについてもtipsあり)

概要

タイトルの件を対応することがあったので備忘録的投稿です。
CVSS(※1)のスコアが高い脆弱性が、利用しているWordPress に同梱のPHPMailer 内に存在することが発覚したので、脆弱性解消の手動アップデートを対応。
もともとは、phpのライブラリ、PHPMailer の対象バージョン(6.1.8 から6.4.0)で、
オブジェクトインジェクション攻撃(※2)を実行できる脆弱性が見つかったことに端を発します。

ちなみに、PHPMailer のCVSS脆弱性の識別子は以下
[CVE-2020-36326]

対応について

基本はWordPress を最新版にアップデートすればOKです(2021/05/27時点でVer 5.7.2 が最新版)。
4系でも、Ver 4.2以降であれば、各ブランチの最新版にバージョンアップでOK(各ブランチの最新版はリリース一覧(外部サイト)を参照のこと)

Ver 4.1 以前は今回の脆弱性対応の対象外になっているので、マイナーバージョンのアップデートを検討か、以下で対応(今回のメインの話)。

Ver 4.1以前または、なんらかの理由でWordPress をアップデートできない場合

手動でファイルを更新と追加を行う。
対象ファイルは以下の4つ(更新1つ、追加3つ)。各ファイルはWordPress のVer 5.7.2 とか最新版から持ってくる。
※ 反映方法は各自環境に準拠して実施してください。

更新対象ファイル

  • {WordPressインストール先のパス}/wp-includes/class-phpmailer.php

追加対象ファイル

  • {WordPressインストール先のパス}/wp-includes/PHPMailer/Exception.php
  • {WordPressインストール先のパス}/wp-includes/PHPMailer/PHPMailer.php
  • {WordPressインストール先のパス}/wp-includes/PHPMailer/SMTP.php

上記対応後
wp_mail(); 関数を実行している機能でメール送信ができることを確認する。

!注意
絶対これが良い、という対応策ではありません。
選択肢の優先順位としてはアップデートを優先。もしくは対応する場合はそれを見越して採用してください。


tips:件名(subject)に指定した文字列の文字コードがおかしくなることがある。

マルチバイト(日本語)を件名に指定している場合、送信されたメールの件名が=?iso-2022-jp?〜 みたいな謎の文字列に変換されて届くことがあります。
どうも、WP Multibyte Patchプラグイン(外部サイト)でメール送信の際の文字エンコード処理が上手く行っていない様子。
以下の対応をすることで、解消できたので合わせてtips を掲載。

対象は以下のファイル↓
{WordPressインストール先のパス}/wp-content/plugins/wp-multibyte-patch/wpmp-config-sample-ja.php

上記をコピペ。wpmp-config.php に名前を変更して、wp-content 直下に設置。
↓のパスで設置できればOK。
{WordPressインストール先のパス}/wp-content/wpmp-config.php

設置したwpmp-config.php ファイル内の、87行目付近にある記述を以下のように変更する。

wpmp-config.php:87行目付近
$wpmp_conf['patch_wp_mail'] = false;

wp_mail();でエンコードを実行する・しないの指定をしている箇所。
もともとtrue で設定されているはず。

ファイルの編集をしたら、再度メールの送信テストを実施。
件名が日本語で送信されていることが確認できたらOK。

※ WP Multibyte Patch 使ってないけど文字化けするんだが?というはちょっと...分かんないっす。

現場からは、以上です。


用語解説

※1 CVSS

Common Vulnerability Scoring System とは共通脆弱性評価システムのこと。
IT製品のセキュリティ脆弱性の深刻さを(システムを理解している人であれば、評価に用いて同じ判定を出せる基準を持つ)評価システムのこと。現在バージョンはv3 で、その他細かい説明は共通脆弱性評価システムCVSS v3概説(外部サイト)を参照してください。

※2 オブジェクトインジェクション攻撃

オブジェクトをインジェクション(注入)して攻撃する方法のこと。
今回の脆弱性には、意図しないオブジェクトの挿入が可能な状態となっており、極端な例で言えば、サイトやサービスの破壊や改ざんや情報漏洩を引き起こすことができると言うもの。

参考・引用元記事(すべて外部サイトへ遷移します)

WordPress公式 > WordPress 5.7.2 Security Release
イイネ.biz > WordPress 5.7.2 Security & Maintenance

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?