WordPress プラグイン Advanced Custom Fields:XSS 脆弱性 CVE-2023-30777 が FIX

WordPress custom field plugin bug exposes over 1M sites to XSS attacks

2023/05/05 BleepingComputer — セキュリティ研究者たちは、数百万件のレベルでインストールされている、WordPress プラグイン Advanced Custom Fields と Advanced Custom Fields Pro が、XSS (Cross-Site Scripting) 攻撃に対して脆弱であると警告している。この2つのプラグインは、WordPress で最も人気のあるカスタム・フィールド・ビルダーであり、世界中のサイトに 2,000,000 のアクティブ・インストールが存在している。2023年5月2日に、Patchstack の研究者である Rafie Muhammad は、これらのプラグインで深刻な反射型 XSS の欠陥を発見し、この脆弱性には識別子 CVE-2023-30777 が付与された。


XSS の脆弱性とは、攻撃者が他人が閲覧する Web サイトに悪意のスクリプトを注入して、閲覧者の Web ブラウザ上でコード実行を可能にするものだ。

Patchstack によると、この脆弱性により、影響を受ける WordPress サイトにおいて、認証されていない攻撃者による、機密情報の窃取や権限の昇格が発生する可能性があるとのことだ。

彼はレポートで、「この脆弱性は、Advanced Custom Fieldsプラグインのデフォルトのインストール/コンフィグレーションで、トリガーされる可能性があることに注意してほしい」と警告している。

さらに彼は、「XSS は Advanced Custom Fields プラグインにアクセスできるログイン・ユーザーからのみ、トリガーすることができる」と説明している。

つまり、認証されていない攻撃者は、プラグインへのアクセス権を所有しているユーザーをソーシャル・エンジニアリングして、悪意の URL にアクセスさせることで、この脆弱性は発動することになる。この脆弱性の発見と同時に、Patchstack がプラグインの開発元に通知したことで、5月4日のバージョン 6.1.6 でセキュリティ・アップデートがリリースされた。

XSS の脆弱性について

この脆弱性 CVE-2023-30777 は、”admin_body_class” 関数ハンドラーに起因している。WordPress サイトの管理エリアにおいて、” main body” タグの CSS クラスの制御/フィルタリングを行う、フックの出力値を適切にサニタイズできていないことが原因だとされる。

The 'admin_body_class' function code
‘admin_body_class’ 関数について (Patchstack)

攻撃者は、プラグインのコード、特に “$this→view” 変数の安全ではない直接コード連結を利用して、最終成果物であるクラス文字列に渡す有害なコード (DOM XSS ペイロード) を、そのコンポーネント内に追加できる。

このプラグインが使用するクリーニング機能である “sanitize_text_field” は、悪意のコード注入を捕捉しないため、攻撃を阻止することはできない。

Accessing 'this->view' variable through the 'current_screen' function
‘current_screen’ 関数を通して ‘this->view’ 変数にアクセスする (Patchstack)

開発元は、バージョン 6.1.6 において、”admin_body_class” フックの出力値を適切にサニタイズする、新しい関数 “esc_attr” を実装し、XSS を防止することで、この欠陥を修正した。

Advanced Custom Fields と Advanced Custom Fields Pro の全てのユーザーに対しては、直ちにバージョン 6.1.6 以降にアップグレードすることが推奨される。

WordPress.org のダウンロード統計によると、同プラグインのユーザーの 72.1%が、今回の XSS などを含む既知の欠陥に脆弱だとされる、バージョン 6.1 未満を使用しているようだ。

WordPress には、さまざまな脆弱性が存在し、また、それらの悪用も繰り返されています。直近のものは、2023/04/20 の「WordPress プラグイン Eval PHP:スティルス・バックドアに悪用されている」であり、その悪用の兆しが把握されているという話でした。よろしければ、WordPress Plugin で検索も、ご利用ください。