
Realtyna Organic IDX plugin + WPL Real Estate < 5.3.0 - Unauthenticated Arbitrary File Upload to Remote Code Execution
Realtyna Organic IDX plugin + WPL Real Estate < 5.3.0 - Unauthenticated Arbitrary File Upload to Remote Code Execution
Realtyna Organic IDX plugin + WPL Real Estate for WordPress < 5.3.0
Unauthenticated arbitrary file upload via hardcoded I/O API credentials, leading to remote code execution.
The WPL Real Estate plugin ships a built-in I/O API (set_property) that is enabled by default and protected only by a pair of hardcoded keys (public_key / private_key). These keys are identical across every installation — they are embedded in the migration SQL that runs on activation.
The API accepts file uploads through the file[] multipart field with the prefix image_*, yet performs no validation on the uploaded file type. An unauthenticated attacker can upload arbitrary .php files, which are stored in a predictable path under wp-content/uploads/WPL/{pid}/, and execute them directly via HTTP.
No WordPress authentication, no nonce, no capability check — just the two hardcoded strings.
Attacker Target (WordPress + WPL ≤ 5.2.0)
│ │
│ POST / (multipart/form-data) │
│ ├─ public_key = <hardcoded> │
│ ├─ private_key = <hardcoded> │
│ ├─ cmd = set_property │
│ └─ file[] = image_Nx_abc.php │
│─────────────────────────────────────────►│
│ │ API validates keys ✓
│ │ Saves file (no type check)
│ {"success": true} │
│◄─────────────────────────────────────────│
│ │
│ GET /wp-content/uploads/WPL/{pid}/Nx_* │
│─────────────────────────────────────────►│
│ PHP executed │
│◄─────────────────────────────────────────│
| File | Content |
|---|---|
Nx_hit/Nwpl_detect.txt | WPL installations found (detect mode) |
Nx_hit/Nwpl_shell.txt | Confirmed shell uploads with full URL and PID |
Nx_hit/Nwpl_canary.txt | Canary verification results |
python CVE-2026-13714.py
The script prompts for:
> Target list: targets.txt
> Threads [1-50]: 10
> Mode [1/2/3]: 2
Target list format — one target per line:
example.com
https://site.com
http://192.168.1.10:8080
sub.domain.org/wordpress
wpl_settings table)wp-content/uploads/WPL/ via server configurationThis tool is provided strictly for authorized security testing and educational purposes. Use it only on systems you own or have explicit written permission to test.
Unauthorized access to computer systems is illegal under laws including but not limited to the Computer Fraud and Abuse Act (CFAA), the UK Computer Misuse Act, and equivalent legislation worldwide.
The author assumes no liability for misuse. By using this tool you accept full responsibility for your actions and agree to comply with all applicable laws and regulations.
Nxploited — Khaled Alenazi
Telegram: @Kxploit
| Detail | Value |
|---|
| CVE | CVE-2026-13714 |
| CWE | CWE-434 (Unrestricted Upload of File with Dangerous Type) |
| Affected | WPL Real Estate ≤ 5.2.0 |
| Fixed in | 5.3.0 |
| Auth required | None |
| CVSS 3.1 | 9.8 CRITICAL |
| Vector | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Source | CISA-ADP |
| Feature | Description |
|---|
| WPL Fingerprinting | ?get_realtyna_platform=1 probe + HTML signature detection |
| WordPress Root Discovery | Auto-detects WP installations in subdirectories (/wp, /blog, /site, etc.) |
| Hardcoded Key Exploitation | Uses the default I/O API keys shipped with every WPL install |
| Multipart Upload | Builds file[] multipart matching WPL's set_property expectations exactly |
| PID Scanner | Brute-forces wp-content/uploads/WPL/{1..N}/ to locate the uploaded file |
| Reverse PID Scan | Scans newest PIDs first for faster discovery on active sites |
| Canary Mode | Safe .txt upload to verify write access without executing PHP |
| Threaded Mass Scan | Concurrent processing with configurable thread count (1–50) |
| Nx-zD Signature | Uploaded shells carry the Nx-zD verification tag |
| Auto Logging | Results saved to Nx_hit/ with separate files per result type |
| Mode | What It Does |
|---|
1 — Detect | Fingerprint WPL installations without uploading anything |
2 — Upload | Upload Nx_*.php shell via the I/O API and verify execution |
3 — Canary | Upload Nx_*.txt (safe probe) to confirm write access only |