
Advanced Custom Fields: Extended <= 0.9.2.5 - バリデーションバイパスによる未認証の権限昇格(「_acf_post_id」パラメータ)
Advanced Custom Fields: Extended <= 0.9.2.5 - 認証なし特権昇格('_acf_post_id' パラメータへのバリデーションバイパス経由) この重大なセキュリティ脆弱性(CVSS 9.8)は、人気のWordPressプラグイン Advanced Custom Fields: Extended(ACF Extended)のバージョン0.9.2.5以降のすべてのバージョンに影響します。
バージョン0.9.2.6で修正されましたが、脆弱性は以下のように動作します:
問題の関数: 脆弱性の根源は、after_validate_save_post() 関数が _acf_post_id というPOSTパラメータに対して一切の検証や認証を行わずに信頼している点にあります。
バリデーションバイパス: 攻撃者は _acf_post_id パラメータを操作することで、関数を静かにクリーンアップブランチに誘導し、「acfe:」プレフィックスを持たないすべてのバリデーションエラーを無視させます。これにより、以下の2つの重要なセキュリティチェックが無効になります:
acfe_field_user_roles::validate_front_value() によって追加されたロール権限リストの検証エラー。
**acfe_module_form_action_user::validate_action() によって追加された管理者権限保護エラー。
不正な管理者作成: これらのチェックがバイパスされた後、攻撃者によって提供された「administrator」ロール引数とともに wp_insert_user() 関数が実行されます。その結果、プラグインの本来の目的に反して、認証されていないユーザーによってシステム上に新しい管理者アカウントが作成されます。
エクスプロイトコードの論理フロー 以下のPythonスクリプトは、この脆弱性がどのように悪用されるかを示す概念実証です。このコードは、必要なすべての手順を自動化することで動作します。