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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-39938 — Подробный отчет об уязвимости CVE-2026-39938 для Cacti ≤1.2.30, демонстрирующий неаутентифицированный LFI, связанный с инъекцией команд ОС для RCE, с PoC, анализом первопричины и рекомендациями по устранению. | Kitploit
Инструменты/GitHubGitHub/kx00007/cve-2026-39938
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийСбор информацииТестирование на Проникновение
GitHubkx00007/cve-2026-39938

CVE-2026-39938

Подробный отчет об уязвимости CVE-2026-39938 для Cacti ≤1.2.30, демонстрирующий неаутентифицированный LFI, связанный с инъекцией команд ОС для RCE, с PoC, анализом первопричины и рекомендациями по устранению.

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

Популярное

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

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

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

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

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

Отчёт об уязвимости: неаутентифицированный RCE в Cacti через Graph Image

Исследователь: K | Продукт: Cacti ≤ 1.2.30 | CVE: CVE-2026-39938


[01] Сводка по уязвимости

ПолеЗначение
ПродуктCacti — комплексное решение для построения графиков на основе RRDtool
Затронутые версии≤ 1.2.30
Класс уязвимостиCWE-22: Path Traversal (LFI) → CWE-78: OS Command Injection
Вектор атакиСеть
АутентификацияНе требуется (обход гостевой учётной записи)
Взаимодействие с пользователемНе требуется
Оценка CVSSv3.19.8 — КРИТИЧЕСКАЯ
ВекторCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Cacti ≤ 1.2.30 уязвим к неаутентифицированному включению локальных файлов (LFI) через параметр graph_theme в graph_image.php, что в связке с внедрением OS-команд через cacti_escapeshellarg() на Windows приводит к удалённому выполнению кода (RCE).


[02] Схема эксплуатации уязвимости

HTTP Request
    │
    ▼
graph_image.php
    │
    ├── $guest_account = true  →  Auth bypass (no login needed)
    │
    ├── graph_theme param  →  LFI (CWE-22)
    │       └── Path traversal via basename() bypass
    │
    └── Other params (graph_height, etc.)
            └── cacti_escapeshellarg()  →  OS injection (CWE-78)
                    └── proc_open()  →  RCE

[03] Первопричина: LFI через graph_theme

Параметр graph_theme недостаточно очищается. В исправлении была предпринята попытка использовать basename(), однако её тривиально обойти: путь вида themes/../../etc/passwd проходит проверку basename(), но при этом всё равно выполняет обход каталогов.

Уязвимый участок кода в graph_image.php:

$theme = basename($_GET['graph_theme']); // basename() is NOT sufficient
include_once("./include/theme_" . $theme . ".php"); // LFI

В исправлении в версии 1.2.31 basename() заменён на cacti_validate_theme(), который использует список разрешённых файлов в файловой системе.


[04] Предварительные условия

УсловиеВероятностьПримечания
Cacti работает на WindowsЧасто в корпоративной средеОшибка экранирования в cmd.exe позволяет RCE
Гостевая учётная запись включенаЧасто — по умолчаниюГостевой пользователь разрешает публичный просмотр графиков
Существует хотя бы один графикПочти всегдаlocal_graph_id=1 присутствует после установки
RRDtool установленТребуется для CactiПрисутствует всегда

[05] Доказательство концепции (PoC)

LFI — чтение произвольных файлов

GET /cacti/graph_image.php?local_graph_id=1&graph_theme=../../../../etc/passwd

Цепочка LFI → RCE

GET /cacti/graph_image.php?local_graph_id=1&graph_height=100" & whoami & "&action=view

Внедрение OS-команд уже обеспечивает прямое удалённое выполнение кода (RCE), поэтому для получения контроля над системой LFI не требуется.

Однако с точки зрения исследователя, если рассматривать обе проблемы вместе:

  • LFI можно использовать для чтения config.php и получения учётных данных базы данных или чувствительных данных конфигурации.
  • Внедрение OS-команд можно использовать для выполнения системных команд и получения контроля над сервером.
  • LFI также помогает подтверждать изменения в системе (например, проверять, был ли файл или полезная нагрузка успешно созданы).

Это показывает, что комбинирование нескольких уязвимостей повышает общий ущерб и делает эксплуатацию проще и надёжнее.


[06] Оценка воздействия

АспектОценкаОписание
КонфиденциальностьВЫСОКАЯПолный доступ на чтение к файловой системе веб-сервера (конфигурация, учётные данные БД)
ЦелостностьВЫСОКАЯВыполнение произвольных команд, развёртывание веб-шелла
ДоступностьВЫСОКАЯЗавершение процессов, повреждение файлов, DoS

[07] Оценка по CVSS v3.1

МетрикаЗначение
Вектор атакиСеть
Сложность атакиНизкая
Необходимые привилегииОтсутствуют
Взаимодействие с пользователемОтсутствует
Область действияБез изменений
КонфиденциальностьВысокая
ЦелостностьВысокая
ДоступностьВысокая

Оценка: 9.8 — КРИТИЧЕСКАЯ


[08] Устранение уязвимости

ПриоритетДействие
НемедленноОбновиться до Cacti 1.2.31 или новее

👤 Автор

MENG HOKSENG
Независимый исследователь безопасности


Ссылки:

  • GHSA-rm7p-qcqm-x5m6
  • https://www.cve.org/CVERecord?id=CVE-2026-39938
  • https://github.com/Cacti/cacti/pull/6966
Скачать инструмент