WPメンテナンスプラグイン(バージョン5.0.5以下)にCSRF・XSSの脆弱性が発見される
WordPressの「WP maintenance」プラグインにおいて、CSRF(クロスサイトリクエストフォージェリ)および保存型XSS(クロスサイトスクリプティング)の脆弱性が発見されました。11月15日、WordFenceがこの脆弱性をWP maintenanceプラグインの開発者に報告。その後、開発者であるFlorent Malliefaud氏はわずか1日で緊急パッチをリリースし、迅速な対応を見せました。
バージョン5.0.6では脆弱性は解消されています。旧バージョンをお使いの場合は、必ずこのバージョンへアップデートしてください。
WP maintenanceプラグインとは
その名の通り、WP maintenanceプラグインはWebサイトをメンテナンスモードに切り替えるためのツールです。さらに、メンテナンスページを細かくカスタマイズできる機能も備えています。
以下は、WordPress公式ディレクトリにおけるWP maintenanceプラグインの表示です。
ご覧のとおり、このプラグインは30,000以上のアクティブインストール数を誇ります。主な機能としては、メンテナンスページへのカスタムテキスト、ロゴ、画像、CSSの設定などが挙げられます。さらに、メンテナンスページにカウントダウンタイマーを挿入することも可能です。
脆弱性の詳細
WordFenceによると、この脆弱性を悪用すると、攻撃者はあなたのWebサイトをメンテナンスモードに変更し、悪意のあるコードを注入できるとのことです。問題の核心は、プラグインのカスタマイズ機能にあります。設定を更新する際に、ユーザーのノンス(nonce)キーが検証されていないため、深刻なCSRF攻撃につながる可能性があります。
また、設定用の入力フィールドには適切なコードサニタイズ(無害化処理)が施されておらず、ハッカーが危険なコードをWebサイトに注入できてしまう状態でした。
より技術的な詳細については、次のセクションで解説します。
技術的な詳細
WP maintenanceは多数のカスタマイズ機能を提供していますが、その分、より厳格な監視が必要でした。しかし同プラグインは、ノンス保護や値の入出力サニタイズが不十分で、この見落としがCSRF(クロスサイトリクエストフォージェリ)を引き起こす結果となりました。そして、このCSRFがWP maintenanceにおけるXSS(クロスサイトスクリプティング)の脆弱性へとつながったのです。
次のコードをご覧ください。
ここでは、update_general AJAX関数がノンストークンを検証していないため、CSRFに対して脆弱になっています。さらに、update_option()関数とwpm_update_settings()関数には入力サニタイズが存在しません。これにより、不正なユーザーや攻撃者が悪意あるスクリプトを保存型XSSとして注入でき、呼び出された際にサイト上でリダイレクト、暗号通貨マイニング、データ窃取などの被害が発生する恐れがあります。
総じて言えば、このプラグインのすべての設定項目がCSRFおよびXSSに対して脆弱な状態でした。
WP maintenanceの一般設定画面には、「タイトル」と「テキスト」の2つの入力フィールドがあります。
バリデーション(検証)とサニタイズの不備により、悪意あるコードは解析を回避して保存型XSSの脆弱性として蓄積されます。以下は、WP maintenanceの「Enable Newsletter(ニュースレター有効化)」フィールドでの実例です。
コードはサニタイズを通過し、実行されてしまいます。
アップデートによるリスク軽減
リスクを回避するには、プラグインを最新版(5.0.6)にアップデートするだけでOKです。
とはいえ、不適切なセキュリティ管理は多くのWordPressプラグインに共通する深刻な課題です。Webサイトのセキュリティを確保する最善の方法は、プラグイン選びに慎重になることです。今回のWP maintenanceのように素早く脆弱性を修正したケースはありますが、そうした対応をしてくれるプラグインばかりではありません。
ダウンロードするのは、活発なサポート体制と開発チームを持つプラグインだけにしましょう。これは、プラグインのレビューを確認したり、フォーラムで評判を調べたりすることで判断できます。
Astra Securityがサポートします
安全なプラグインを選ぶことは重要ですが、プラグイン自身のセキュリティに頼るよりも効果的な対策があることをご存じでしょうか?それは、自分専用のセキュリティシステムを導入することです。
Astra Securityは、WordPressサイトのための総合セキュリティスイートです。Astraにサイトのセキュリティを任せれば、安心して本業に集中できます。Webアプリケーションファイアウォール(WAF)、マルウェアスキャナー、マルウェア駆除、セキュリティ監査など、多彩な機能を提供しています。詳細は弊社のレビューページをご確認ください。
まずはAstraのデモを体験して、その実力を確かめてみてください。
セキュリティに関するご質問は、下のコメント欄からお気軽にどうぞ。責任をもってお答えします :)
または、こちらのチャットからセキュリティ専門家に直接お問い合わせいただくことも可能です。
-
WPFormsプラグインに認証済み保存型XSSの脆弱性(CVE-2020-10385)が発見 ― バージョン1.5.9への即時アップデートを
WordPressの人気フォームプラグイン「WPForms」において、バージョン1.5.8.2以前に認証済みユーザーによる保存型XSS(クロスサイトスクリプティング)の脆弱性が存在することが、プラグイン監査の過程で確認されました。データのサニタイズ(無害化処理)を強化したバージョン1.5.9は、2020年3月5日にリリースされています。 CVE ID: CVE-2020-10385 概要 WPFormsは、300万以上のアクティブインストール数を誇るWordPress向けフォーム作成プラグインです。今回、認証済みユーザーによって悪用可能なクロスサイトスクリプティング(XSS)の脆弱性が発見
-
SeedProd「Coming Soon Page, Under Construction & Maintenance Mode」にXSS脆弱性が発見 ― 今すぐアップデートを
WordPressプラグイン「Coming Soon Page, Under Construction & Maintenance Mode by SeedProd」(バージョン5.1.0以下)に、保存型XSS(クロスサイトスクリプティング)の脆弱性が確認されました。データのサニタイズ処理を強化した修正版であるバージョン5.1.2は、2020年6月24日にリリースされています。 CVE ID:CVE-2020-15038 概要 「Coming Soon Page, Under Construction & Maintenance Mode by SeedProd」は、アクテ