WordPressプラグイン「Slimstat」4.8以前のバージョンに発見されたストアドXSS脆弱性とは
WordPressのアクセス解析プラグイン「Slimstat」において、バージョン4.8以前にストアドXSS(クロスサイトスクリプティング)脆弱性が発見されました。執筆時点で、このプラグインは10万以上のウェブサイトにインストールされています。Slimstatは、アクセスログ、再訪問者や登録ユーザー、JavaScriptイベントなどをリアルタイムで監視・レポートすることで知られる、この分野で最も人気のあるプラグインの一つです。そのため、このXSS脆弱性の発見は業界全体に大きな波紋を呼ぶこととなりました。
Slimstat WordPressプラグインのリスクの現状
この脆弱性により、認証されていないユーザーでも、バージョン4.8以前のアクセスログにJavaScriptを挿入できる状態でした。ただし、プラグイン開発者は迅速に対応し、修正を加えたバージョン4.8.1がまもなくプラグインディレクトリに公開されました。しかし、まだパッチ適用済みバージョンへ更新していないサイトでは、リスクが残ったままになっています。
以下では、Slimstatで発見されたXSSの技術的な詳細を解説します。
Slimstat WordPressプラグインの脆弱性の詳細
この脆弱性により、認証されていない訪問者は誰でも、プラグインの中核機能であるアクセスログ機能に任意のJavaScriptコードを注入できてしまいます。さらに、このアクセスログはプラグインのアクセスログページだけでなく、管理ダッシュボードからも閲覧可能です。
アクセスログとは、ウェブサイトへのアクセスリクエストの詳細を確認できる機能で、一般的にはIPアドレス、サーバー情報、ホスティング情報などの具体的なデータが含まれます。
Slimstatでは、悪意のあるユーザーがプラグインのアクセスログに任意のコードを注入することが可能で、管理者がログインした時点でそのコードが実行されてしまいます。
最も深刻な問題点として、このプラグインにはサニタイズ(無害化)処理が1つしか実装されていません。それはstrip_tagsという、挿入された値からタグを除去するだけの関数です。このサニタイズ基準は、シングルクォートを使用してからイベントハンドラーを追加するだけで、簡単に回避できてしまいます。
以下は、変数$a_plugin(プラグイン)から画像が生成される仕組みを示したものです。
その結果、「plugin’onerror’」というエラーが発生します(画像参照)。リクエストが正常に実行されなかったため、この不正なコードは潜在的なXSS脆弱性としてアクセスログ内に保存されてしまうのです。
Slimstatの脆弱性リスクへの対策として今すぐアップデートを
脆弱なプラグインを使用している状況では、バージョンを最新に更新し、あらゆる予防的なセキュリティ対策を講じる以外に有効な手段はほとんどありません。アップデートに加えて、XSS、SQLi(SQLインジェクション)、CSRFなど、一般的なサイバー攻撃をブロックする継続的かつ包括的なWebアプリケーションファイアウォール(WAF)の導入も強く推奨されます。Astraはそのようなファイアウォールを提供しており、ウェブサイトへの攻撃の試みを常時監視し、ブロックし、レポートします。まずは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)の脆弱性が発見
-
WordPressプラグイン「GDPR Cookie Consent」に重大な脆弱性が発見される――権限昇格・保存型XSSの危険性、至急アップデートを
WordPressユーザーがGDPR(EU一般データ保護規則)への対応を簡単に行えるようにする人気プラグイン「GDPR Cookie Consent」において、不適切なアクセス制御による脆弱性が発見されました。この脆弱性を悪用されると、権限昇格や保存型XSS(クロスサイトスクリプティング)といった深刻な攻撃につながる可能性があります。執筆時点で、このプラグインは70万以上のWordPressサイトで利用されており、影響範囲は非常に広いと言えます。 脆弱性に関するタイムライン 報告日:2020年2月4日修正日:2020年2月10日影響を受けるバージョン:1.8.2以前のすべてのバージョ