Advanced Custom Fieldsの重大なセキュリティ欠陥により10万件のWordPressサイトが危険にさらされる

WordPress向けの人気アドオンプラグインで重大なセキュリティ脆弱性が確認され、約10万のウェブサイトがサイト全体の乗っ取りリスクにさらされています。この欠陥は、確立されたAdvanced Custom Fields(ACF)フレームワークの機能を強化するために設計された「Advanced Custom Fields: Extended」プラグイン内に存在します。最近のアドバイザリでは深刻度が9.8と評価されており、悪用された場合の壊滅的な影響が強調されています。

認証不要の権限昇格がWordPressユーザーに脅威をもたらす

この脆弱性により、認証されていない攻撃者が管理者レベルの権限を持つ新規ユーザーアカウントを作成でき、影響を受けるWordPressサイトを実質的に完全に制御できてしまいます。通常の権限昇格問題は、ある程度の既存ユーザー権限を必要としますが、この欠陥では事前のアクセスが一切不要なため、危険性が大幅に高まります。脆弱なバージョンの本プラグインを特定の設定と組み合わせて運用しているサイトは、世界中の攻撃者から狙われる可能性があります。

Advanced Custom Fields: Extendedプラグインは、カスタムフィールドの運用を改善できる点から、WordPress開発者やサイトオーナーの間で広く支持されています。このACFアドオンは、フロントエンドフォームの管理、オプションページの作成、カスタム投稿タイプやタクソノミーの定義、さらにWordPressの管理画面インターフェースの変更などのための多彩なツールを提供します。

プラグインの欠陥を理解する

根本原因は、ユーザー登録時のロール制限が不十分であることに起因する権限昇格の脆弱性です。簡単に言えば、プラグインのinsert_user関数が、新規ユーザーに割り当て可能なWordPressロールに対する制限を適用できていません。通常、WordPressはユーザー登録時に不正な権限昇格を防ぐための厳格な制御を維持していますが、この重要な安全策が回避されてしまっています。

この脆弱性を悪用するには、攻撃者が、カスタムフィールドをWordPressのユーザーロールに直接マッピングするプラグイン提供のフロントエンドフォームを利用する必要があります。この構成が存在すると、プラグインは適切な認証なしに送信されたロール値を受け入れてしまいます。つまり、プラグインはロール選択の管理をHTMLフォームに依存し、必要なサーバー側の検証を回避していました。

例えば、開発者が「subscriber(購読者)」ロールのみを表示する登録フォームを用意したとします。しかし悪意ある行為者はフォームのHTMLを調べ、HTTPリクエストを傍受して、送信されるロールをrole=subscriberからrole=administratorへ変更できます。するとプラグインはこの値を検証しないままWordPressのユーザー作成関数へ渡し、結果として完全な管理者権限が付与されてしまいます。

リスクの軽減:アップデートと修正

プラグインの変更履歴(changelog)によれば、問題は修正済みです。主な修正点は次のとおりです。

  • 「フロントエンドフィールドを、それぞれの『Choices』設定に対して検証することを強制。」
  • 「モジュール:Forms – ユーザーロール選択を許可するフォーム向けのセキュリティ対策を導入。」

これらの更新により、より堅牢なサーバー側防御と、特にユーザーロール選択に関連するフロントエンドフォームの検証強化が導入されます。

未対応のまま放置した場合、影響を受けるウェブサイトへの影響は深刻です。攻撃者はサイトデータの改ざん、プラグインやテーマのインストール/変更、悪意あるコードの混入、バックドアとなる管理者アカウントの作成、トラフィックのリダイレクト、さらにはマルウェア拡散まで行える可能性があります。要するに、WordPressサイトの全面的な乗っ取りにつながり得ます。

サイトオーナー向け手順:直ちに必要な対応

この脆弱性は0.9.2.1までのすべてのバージョンに影響し、0.9.2.2で修正されています。この更新には、フロントエンドフォームおよびユーザーロール管理に特化した多数の検証フックと強化されたセキュリティチェックが含まれます。変更履歴における注目すべき更新は次のとおりです。

  • モジュール:Forms – フロントエンドフィールドを、それぞれの『Choices』設定に従って検証することを強制。
  • モジュール:Forms – ユーザーロール選択を許可するフォーム向けのセキュリティ対策を追加。
  • モジュール:Forms – フロントエンドで個別フィールドを検証するためのacfe/form/validate_valueフックを導入。
  • モジュール:Forms – 必要に応じて強制検証を回避するためのacfe/form/pre_validate_valueフックを実装。

このACFアドオンプラグインを使用している場合は、直ちに最新バージョンへアップグレードすることが不可欠です。更新が現実的でない場合は、パッチを適用できるまでプラグインを無効化することを強く推奨します。この欠陥の深刻さ、悪用の容易さ、そして攻撃が活発化している兆候を踏まえると、対応の遅れはWordPressサイトが完全に侵害されるリスクを高めます。

翻訳元: https://cyberwarriorsmiddleeast.com/major-security-flaw-in-advanced-custom-fields-puts-100000-wordpress-sites-in-danger/

ソース: cyberwarriorsmiddleeast.com