Impervaは5月16日(米国時間)、「Beware! A threat actor could steal the titles of your private (and draft) WordPress posts!|Imperva」において、すべてのWordPressサイトに影響を与える可能性のある脆弱性を発見したと報じた。この脆弱性を悪用されると、機密性の高い非公開記事や下書き記事のタイトルが窃取されるリスクがあるという。

  • Beware! A threat actor could steal the titles of your private (and draft) WordPress posts!|Imperva

    Beware! A threat actor could steal the titles of your private (and draft) WordPress posts!|Imperva

脆弱性の概要

WordPressを含む主要なCMS(Content Management System)製品は、投稿に含まれる別のブログへのリンクを検出し、リンク先のブログサイトに通知してバックリンクの作成を可能にする「Pingback」を実装している。この機能は標準化されており、「Pingback 1.0」にて仕様が公開されている。

PingbackはXMLPRC(XML Remote Procedure Call)をインタフェースとして使用すると定めており、WordPressもその仕様に従っている。Pingbackの基本的な動作手順は次のとおり。

  • 外部のブログサイトへのリンクを含む投稿を検出すると、そのサイトへ通知する
  • 通知を受けたブログサイトはリンク先が実際に存在するか確認する
  • リンク先が存在する場合は、リンク元にそのリンクが実際に存在するか確認する
  • 必要な処理を実行して応答コードを返送する
  • Pingbackの動作概念図 - 引用:Imperva

    Pingbackの動作概念図 引用:Imperva

ImpervaによるとWordPressのPingbackには、リンク先として受け取ったURLにURIフラグメント(URL最後の#から始まる文字列)が含まれる場合、URLから英数字のみを取り出してタイトル検索を行う仕組みがあるという。この機能を悪用すると、攻撃者は細工したリンク先URLを送信することでタイトル検索が可能になる。

タイトルの一覧を取得できるわけではなく、ワイルドカードを使えるわけでもない。それでもタイトルをある程度予測できる場合、攻撃者は検索を繰り返すことで記事の存在を特定できることになる。総当たり攻撃に似た手法となるが、Impervaは英語タイトルの場合、現実的な攻撃回数で非公開情報の存在を特定可能としている。

影響と軽減策

この脆弱性を悪用しても流出する情報はタイトルに限定され、投稿予定の内容は秘匿される。しかしながら、この点についてImpervaは次のように述べ、タイトルだけでも甚大な経済的損失につながる可能性があると指摘している。

「2012年にGoogleの決算報告書が誤って早期公開されたときは9%の株価下落につながり、わずか数分で時価総額約220億ドルを消失しました。同様に、2019年にはGoogleによるFitbitの買収計画に関するニュースが正式発表前にリークされ、株価の乱高下を引き起こし、市場の憶測や規制当局の監視の高まりにより交渉が複雑化しました。このような不正な情報開示は、インサイダー取引、法的責任、企業の信頼を損なう可能性があります」

Impervaによると、WordPressはPingbackを含むXMLRPCを2012年12月にリリースしたWordPress 3.5以降のすべてのバージョンに搭載しており、デフォルトで有効とされる。

影響範囲が広いことから、同社はこの脆弱性の存在を調査するスクリプトを開発し、「title_leak.py · GitHub」にて公開している。WordPressサイトを運用している管理者にはスクリプトの動作を検証した上で必要に応じて活用することが望まれている。