WordPressのSEOプラグイン「Rank Math SEO」は、高機能で直感的に操作できる設計が特徴のプラグインです。
無料版でも充実したSEO機能を提供し、初心者から上級者まで幅広いユーザーに支持されています。
しかし、最近のアップデートで脆弱性が発見され、修正されました。本記事では、この脆弱性の内容と修正の詳細を解説します。
参照リンク
目次
CVEとは?
CVE(Common Vulnerabilities and Exposures)は、ソフトウェアやハードウェアに存在する脆弱性を一意に識別するための標準化された識別番号システムです。
各脆弱性にはCVE識別子(例: CVE-2024-13227)が割り当てられ、セキュリティ研究者や企業が情報を共有しやすくなっています。
CVEはMITRE Corporationによって管理されており、脆弱性の影響範囲や修正情報を提供する重要なデータベースの一部です。
Wordfenceによる報告内容
今回の脆弱性(CVE-2024-13227)は、Wordfenceによって報告されました。
- スコア: 6.4(中程度のリスク)
- 脆弱性の種類: 不適切な入力処理によるクロスサイトスクリプティング(Improper Neutralization of Input During Web Page Generation – ‘Cross-site Scripting’)
- CVSSベクター: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
- CVE識別子: CVE-2024-13227
- CVSSスコア: 6.4(Medium)
- 公開日: 2025年2月12日
- 最終更新日: 2025年2月12日
- 発見者: Webbernaut
詳細については、Wordfenceの脆弱性レポートをご確認ください。
発見された脆弱性の概要
2025年1月、Rank Math SEOのバージョン1.0.235以前において、認証済み寄稿者(Contributor)権限を持つユーザーが保存型クロスサイトスクリプティング(Stored XSS)を実行できる脆弱性(CVE-2024-13227)が発見されました。
この脆弱性を利用すると、寄稿者権限を持っている管理ユーザーである攻撃者が悪意のあるスクリプトを挿入し、他の管理者が該当ページを閲覧した際にスクリプトが実行される可能性がありました。
例えば、管理者がダッシュボードにアクセスした際に、スクリプトが作動して認証情報を盗み出したり、悪意のあるリダイレクトを発生させることでフィッシングサイトへ誘導したりする危険性がありました。
これにより、
- 悪意のあるJavaScriptの実行
- ユーザーのセッション情報の盗難
- 管理画面の改ざん
などのリスクが発生する可能性がありました。
脆弱性の原因と修正内容
原因
修正前のコードでは、寄稿者権限のユーザーでもスキーマ(構造化データ)の削除が可能となっており、本来管理者または編集者レベルの権限が必要な操作に対するチェックが不足していました。
修正前の問題点
- 権限チェックの不足
delete_metadata_by_mid()
などの関数が直接呼び出されており、適切な権限チェックが行われていなかった。
- 不正なID削除の可能性
str_replace()
を利用して取得したmeta_id
が、適切な投稿に関連付けられているかの検証が不足していた。
修正内容
この脆弱性は、バージョン1.0.236 において修正されました。詳細については、開発者の公式アナウンスや変更履歴をご参照ください。
主な修正ポイント
- 権限チェックの追加
if ( ! Helper::has_cap( 'onpage_snippet' ) ) {
return;
}
Helper::has_cap( 'onpage_snippet' )
を追加し、適切な権限を持つユーザーのみスキーマの削除が可能に。
2. スキーマIDの事前チェック
$schemas = DB::get_schemas( $object_id );
if ( empty( $schemas ) || ! in_array( "schema-{$meta_id}", array_keys( $schemas ), true ) ) {
return;
}
削除対象の meta_id
が、現在の投稿のスキーマデータに存在するかどうかを検証。
3. コードのリファクタリング
maybe_delete_schema()
関数を新たに作成し、スキーマ削除処理を適切にカプセル化。
まとめ
Rank Math SEOは高機能なSEOプラグインであり、定期的なアップデートが行われています。
今回の脆弱性(CVE-2024-13227)も迅速に修正されました。ユーザーは必ず最新バージョンへアップデートし、セキュリティリスクを最小限に抑えるようにしましょう。
コメントを残す