CVSS 8.0High

CVE-2022-21662: 投稿スラッグのStored XSS

概要

  • CVE: CVE-2022-21662
  • 影響バージョン: WordPress 3.7 〜 5.8.2
  • CVSS: 8.0 (High)
  • 認証: Author権限(投稿者権限)が必要
  • 種別: Stored Cross-Site Scripting(保存型XSS)

2022年1月、WordPressの投稿スラッグ(URLスラッグ)の処理に、保存型XSS脆弱性が発見されました。3年以上にわたって発見されず、wordpress.org自体も影響を受けていた脆弱性です。

何が起きたか

WordPressでは、投稿のURLスラッグ(例: my-blog-post)をユーザーが設定できます。このスラッグは通常、サニタイズされてURLセーフな文字列に変換されます。

しかし、Author権限を持つユーザーがスラッグの値を操作した場合、特定の条件下でJavaScriptコードが保存・実行されるパスが存在しました。

問題のポイント:

  • スラッグの値が管理画面の特定の場所でエスケープなしに出力されていた
  • Author権限のユーザーが悪意のあるスラッグを作成すると、管理者がその投稿を閲覧した際にXSSが発火
  • 保存型(Stored)のため、一度設置すれば管理者がページを開くたびに実行される

攻撃の仕組み

  1. 悪意のあるスラッグの作成: Author権限のユーザーが投稿を作成し、スラッグにXSSペイロードを含める

  2. 管理者の閲覧を待つ: 管理者が投稿一覧や編集画面で当該投稿を閲覧すると、XSSが発火

  3. 管理者権限の奪取: XSSにより管理者のセッションCookieを窃取、または管理者権限で任意の操作を実行:

    • 新しい管理者アカウントの作成
    • プラグインのインストール(バックドア付き)
    • サイト設定の変更
    • 他のユーザーのパスワードリセット
  4. 永続的なバックドア: プラグインやテーマファイルにバックドアを設置し、スラッグのXSSが修正されても侵入を維持

実際の被害

  • WordPress 3.7〜5.8.2 の全バージョンが影響(約8年分のバージョン)
  • 3年以上にわたり発見されなかった
  • wordpress.org自体もWordPressで構築されており、潜在的に影響を受けていた
  • マルチサイト環境では、一般ユーザーがAuthor権限を持つことが多く、影響範囲が拡大
  • ブログプラットフォームやメディアサイトなど、外部ライターを受け入れるサイトが特に危険

修正と教訓

修正: WordPress 5.8.3で修正。スラッグの出力時に適切なエスケープ処理が追加されました。WordPress 3.7以降のすべてのサポートバージョンにバックポートされました。

教訓:

  1. Stored XSSの危険性: 一度保存されると、閲覧するたびに実行される
  2. 権限昇格のベクトル: XSSは「単なるスクリプト実行」ではなく、管理者権限の奪取に直結する
  3. 長期間の潜伏: 3年以上未発見 — セキュリティレビューを通過していた箇所にも脆弱性は潜む
  4. 出力エスケープの徹底: 信頼できるデータでも、HTML出力時は必ずエスケープが必要
  5. 最小権限の原則: Author権限でも管理者を攻撃可能 — 権限付与は慎重に

Nyambushでの検出

NyambushはWordPressのバージョンを検出し、この脆弱性を含むバージョンを使用している場合に警告します。特にStored XSSは攻撃者にとって高い価値があり、バージョンアップの優先度が高い脆弱性です。

定期スキャンを設定し、バージョンの監視を継続することで、このような長期間潜伏する脆弱性のリスクを軽減できます。

この記事をシェア:Xでポスト

あなたのドメインは安全ですか?

Nyambushで今すぐ無料スキャンして、セキュリティリスクをチェックしましょう。