WordPress Core の脆弱性 CVE-2024-4439 が FIX:とても危険な蓄積型 XSS

CVE-2024-4439: Unauthenticated Stored Cross-Site Scripting Vulnerability in WordPress Core

2024/05/03 SecurityOnline — 世界で最も人気のある CMS である WordPress に、深刻なセキュリティ脆弱性が発見され、影響を受ける Web サイトの制御を、攻撃者により奪われる可能性があることが確認された。この脆弱性 CVE-2024-4439 (CVSS:7.2) は、WordPress Core に存在する蓄積型クロス・サイト・スクリプティング (XSS) の欠陥に起因する。


この脆弱性により、特に WordPress のバージョン 6.5.2 以下においては、Avatar ブロックに影響が生じる。このブロックは、バージョン 6.0 で導入されたものであり、コンテキストに応じた投稿者やコメント作成者のアバターを表示するために利用される。この脆弱性は、ユーザー表示名の不十分な出力エスケープにより発生し、認証/未認証の攻撃者に対して、有害な Web スクリプトの注入を許すことになる。

認証されたユーザーの場合は、特に投稿者レベル以上のアクセス権を持つユーザーの場合は、この脆弱性が悪用されると、任意の Web スクリプトがページに注入され、そのページをユーザーが閲覧した際に実行される可能性がある。その一方で、認証されていない攻撃者は、コメント・ブロックが存在している状況で、コメント作成者のアバターが表示されているページで、この脆弱性を悪用できる。

根本的な問題は、ユーザーから提供されたデータのエスケープとフォーマットにおける、不適切な操作順序に起因している。以下は、影響を受けるコード・スニペットである:

$label = 'aria-label="' . sprintf( esc_attr__( '(%s author archive, opens in a new tab)' ), $author_name ) . '"';
$label = 'aria-label="' . sprintf( esc_attr__( '(%s website link, opens in a new tab)' ), $comment->comment_author ) . '"';

脆弱性 CVE-2024-4439 は、esc_attr()がsprintf() よりも先に実行されるため、”comment_author” と “author_name” が HTML 出力に含まれる前に適切にエスケープされないと、問題が引き起こされる。それにより、attribute-based XSS ペイロードへの、ドアが開かれることになる。

この脆弱性の影響は深刻であり、XSS 攻撃による管理ユーザーの追加や、テーマやプラグインのコード変更によるバックドア導入などの、サイト全体を危険にさらす可能性のある悪意のアクションに使われる可能性がある。

2024年4月9日に WordPress がリリースした、バージョン 6.5.2 のセキュリティ・アップデートにより、この脆弱性は迅速に対処されている。このパッチは、バージョン 6.1以降にもバックポートされている。すべての WordPress サイト管理者は、バージョン 6.5.2 以降の安全なリリースで、自身のサイトが更新されていることを確認する必要がある。