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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-10952-ml-logger-AFR — PoC для CVE-2025-10952 — ml-logger неаутентифицированное произвольное чтение файлов. CVSS 5.3 | Kitploit
Инструменты/GitHubGitHub/khashayarnzk/cve-2025-10952-ml-logger-afr
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииТестирование на Проникновение
GitHubkhashayarnzk/cve-2025-10952-ml-logger-afr

CVE-2025-10952-ml-logger-AFR

PoC для CVE-2025-10952 — ml-logger неаутентифицированное произвольное чтение файлов. CVSS 5.3

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

Популярное

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

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

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

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

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

CVE-2025-10952 — произвольное чтение файлов через stream_handler в ml-logger

Этот репозиторий предоставляет автономный Python-скрипт — CVE-2025-10952.py — который эксплуатирует неаутентифицированную уязвимость произвольного чтения файлов в stream_handler библиотеки ml-logger, в связке с конечной точкой /glob для перечисления файловой системы.

При запуске против уязвимого экземпляра ml-logger скрипт:

  • Перечисляет файлы на целевом хосте через конечную точку /glob (без аутентификации, без ограничений пути за пределами предполагаемой области).
  • Читает произвольный файл через конечную точку /stream, передавая специально сформированный параметр key, который выходит за пределы логики объединения базового пути обработчика.
  • При необходимости сохраняет полученный файл на диск для дальнейшего использования (например, эксфильтрированный закрытый SSH-ключ).

Поскольку stream_handler передаёт поле key, предоставленное клиентом, напрямую в вызов разрешения пути к файлу и потоковой передачи без проверки ограничений, неаутентифицированный сетевой злоумышленник может прочитать любой файл, доступный пользователю ОС, от имени которого работает сервис.

Детали уязвимости (CVE-2025-10952)

  • Компонент: ml_logger/server.py — stream_handler (обработчик файлов)
  • Слабость: CWE-200 (раскрытие чувствительной информации неавторизованному субъекту), CWE-284 (некорректный контроль доступа)
  • CVSS 3.1: 5.3 (средний) — AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
  • Затронутые версии: geyang/ml-logger, все версии вплоть до коммита acf255bade5be6ad88d90735c8367b28cbe3a743 (проект с непрерывными релизами; на момент раскрытия исправленная версия не опубликована)
  • Требуемый доступ: отсутствует (без аутентификации)

stream_handler принимает JSON-тело, содержащее поле key, и передаёт его напрямую в вызов чтения файла без какой-либо санитизации пути. Соседняя конечная точка glob_handler реализует частичные ограничения пути (блокировка абсолютных путей и обхода каталогов), но stream_handler не разделяет эту проверку — удвоенного ведущего слэша в key (например, //root/.ssh/id_rsa) достаточно, чтобы выйти за пределы предполагаемой базовой директории.

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

  • Python 3.8+
  • Сетевой доступ к уязвимому экземпляру API ml-logger
  • Никакие учётные данные не требуются

Установка и настройка

git clone https://github.com/Khashayarnzk/CVE-2025-10952-ml-logger-AFR.git
cd CVE-2025-10952-ml-logger-AFR
pip install -r requirements.txt

Использование

Перечисление файлов:

python3 CVE-2025-10952.py --target TARGET --port 8081 --glob "/etc/*"

Чтение произвольного файла:

python3 CVE-2025-10952.py --target TARGET --port 8081 --read "//root/.ssh/id_rsa"

Чтение и сохранение на диск:

python3 CVE-2025-10952.py --target TARGET --port 8081 --read "//root/.ssh/id_rsa" --out id_rsa_root
chmod 600 id_rsa_root
ssh -i id_rsa_root -o StrictHostKeyChecking=no root@TARGET

--port по умолчанию равен 8081 — стандартный порт файлового брокерского API ml-logger в типовом развёртывании. Панель управления фронтендом обычно обслуживается на отдельном порту и не является частью уязвимого пути.

Порядок эксплуатации

  1. Подтвердите, что конечная точка /glob цели отвечает 405 Method Not Allowed с заголовком Allow: POST — это идентифицирует порт API в отличие от статического фронтенда панели управления.
  2. Перечислите доступные пути с помощью --glob, чтобы найти интересующие файлы (SSH-ключи, конфигурации, хранилища учётных данных).
  3. Получите целевой файл с помощью --read, используя удвоенный ведущий слэш для абсолютных путей.
  4. Если файл является закрытым ключом, используйте его напрямую для аутентификации (см. раздел «Использование» выше).

Обнаружение и смягчение последствий

  • Сеть: отслеживайте JSON-поля в стиле key/path, содержащие .., удвоенные ведущие слэши (//) или префиксы абсолютных путей (/etc, /root, /proc), направленные на порты сервиса ml-logger.
  • Хост: мониторинг целостности файлов или доступа к ~/.ssh/, /etc/shadow, /etc/passwd должен фиксировать чтения, исходящие от идентификатора процесса ml-logger.
  • Экспонирование: никогда не открывайте ml-logger для недоверенной сети без аутентифицирующего обратного прокси перед ним.
  • Исправление: обеспечьте ограничение пути (проверка os.path.realpath() на соответствие разрешённой базовой директории) в stream_handler; запускайте сервис под выделенной непривилегированной учётной записью ОС.

Ссылки

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-10952
  • GitHub Advisory: https://github.com/advisories/GHSA-9x36-c74v-fgr6
  • Оригинальный отчёт: https://github.com/geyang/ml-logger/issues/74
  • Проект: https://github.com/geyang/ml-logger

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

Этот репозиторий содержит proof-of-concept эксплойт для CVE-2025-10952 — уязвимости неаутентифицированного раскрытия информации в ml-logger. Используйте этот код только в средах, которыми вы владеете или на тестирование которых имеете явное разрешение. Автор не несёт ответственности за любое неправомерное использование или ущерб, причинённый этим программным обеспечением.

Лицензия

См. LICENSE.

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