
Realtyna Organic IDX plugin + WPL Real Estate < 5.3.0 - Неаутентифицированная произвольная загрузка файлов, ведущая к удалённому выполнению кода
Плагин Realtyna Organic IDX + WPL Real Estate < 5.3.0 — неаутентифицированная произвольная загрузка файлов, приводящая к удалённому выполнению кода
Плагин Realtyna Organic IDX + WPL Real Estate для WordPress < 5.3.0
Неаутентифицированная произвольная загрузка файлов с использованием встроенных учётных данных I/O API, приводящая к удалённому выполнению кода.
Плагин WPL Real Estate поставляется со встроенным I/O API (set_property), который включён по умолчанию и защищён только парой встроенных ключей (public_key / private_key). Эти ключи одинаковы во всех установках — они встроены в миграционный SQL, который выполняется при активации.
API принимает загрузку файлов через multipart-поле file[] с префиксом image_*, но не выполняет никакой проверки типа загружаемого файла. Неаутентифицированный злоумышленник может загружать произвольные .php-файлы, которые сохраняются по предсказуемому пути в wp-content/uploads/WPL/{pid}/, и выполнять их напрямую через HTTP.
Никакой аутентификации WordPress, никакого nonce, никакой проверки прав — только две встроенные строки.
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 │
│◄─────────────────────────────────────────│
| Файл | Содержимое |
|---|---|
Nx_hit/Nwpl_detect.txt | Найденные установки WPL (режим определения) |
Nx_hit/Nwpl_shell.txt | Подтверждённые загрузки шеллов с полным URL и PID |
Nx_hit/Nwpl_canary.txt | Результаты проверки канарейкой |
python CVE-2026-13714.py
Скрипт запрашивает:
> Target list: targets.txt
> Threads [1-50]: 10
> Mode [1/2/3]: 2
Формат списка целей — одна цель на строку:
example.com
https://site.com
http://192.168.1.10:8080
sub.domain.org/wordpress
wpl_settings)wp-content/uploads/WPL/ с помощью настроек сервераЭтот инструмент предоставляется строго для авторизованного тестирования безопасности и образовательных целей. Используйте его только на системах, которыми вы владеете или на тестирование которых имеете явное письменное разрешение.
Несанкционированный доступ к компьютерным системам является незаконным в соответствии с законодательством, включая, но не ограничиваясь: Computer Fraud and Abuse Act (CFAA), британским Computer Misuse Act и аналогичными законами по всему миру.
Автор не несёт никакой ответственности за неправомерное использование. Используя этот инструмент, вы принимаете на себя полную ответственность за свои действия и соглашаетесь соблюдать все применимые законы и нормативные акты.
Nxploited — Khaled Alenazi
Telegram: @Kxploit
| Деталь | Значение |
|---|
| CVE | CVE-2026-13714 |
| CWE | CWE-434 (Неограниченная загрузка файла с опасным типом) |
| Затронуто | WPL Real Estate ≤ 5.2.0 |
| Исправлено в | 5.3.0 |
| Требуется аутентификация | Нет |
| CVSS 3.1 | 9.8 КРИТИЧЕСКИЙ |
| Вектор | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Источник | CISA-ADP |
| Возможность | Описание |
|---|
| Фингерпринтинг WPL | Зонд ?get_realtyna_platform=1 + обнаружение сигнатур в HTML |
| Обнаружение корня WordPress | Автоматически находит установки WP в поддиректориях (/wp, /blog, /site и т.д.) |
| Эксплуатация встроенных ключей | Использует стандартные ключи I/O API, поставляемые с каждой установкой WPL |
| Multipart-загрузка | Формирует multipart-поле file[], точно соответствующее ожиданиям set_property в WPL |
| Сканер PID | Перебирает wp-content/uploads/WPL/{1..N}/ для поиска загруженного файла |
| Обратный скан PID | Сначала сканирует самые новые PID для более быстрого обнаружения на активных сайтах |
| Режим канарейки | Безопасная загрузка .txt для проверки права на запись без выполнения PHP |
| Многопоточное массовое сканирование | Параллельная обработка с настраиваемым числом потоков (1–50) |
| Сигнатура Nx-zD | Загруженные шеллы содержат проверочную метку Nx-zD |
| Автоматическое логирование | Результаты сохраняются в Nx_hit/ с отдельными файлами для каждого типа результата |
| Режим | Что делает |
|---|
1 — Определение | Определяет установки WPL по сигнатурам без загрузки каких-либо файлов |
2 — Загрузка | Загружает шелл Nx_*.php через I/O API и проверяет его выполнение |
3 — Канарейка | Загружает Nx_*.txt (безопасный зонд) только для подтверждения права на запись |