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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-33154 — Эксплойт proof-of-concept для CVE-2026-33154, демонстрирующий удалённое выполнение кода через SSTI в Jinja-резолвере Dynaconf, с анализом и рекомендациями по смягчению последствий. | Kitploit
Инструменты/GitHubGitHub/redyank/cve-2026-33154
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийОбучение и Образование
GitHubredyank/cve-2026-33154

CVE-2026-33154

Эксплойт proof-of-concept для CVE-2026-33154, демонстрирующий удалённое выполнение кода через SSTI в Jinja-резолвере Dynaconf, с анализом и рекомендациями по смягчению последствий.

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

Популярное

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

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

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

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

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

Отчёт об уязвимости SSTI в Dynaconf

Краткое описание

Dynaconf уязвим к инъекции шаблонов на стороне сервера (SSTI) из-за небезопасной оценки шаблонов в резолвере __@Jinja__. Когда установлен пакет jinja2, Dynaconf вычисляет выражения шаблонов, встроенные в значения конфигурации, без песочницы (sandboxed environment).

Если злоумышленник может влиять на источники конфигурации, такие как:

  • Переменные окружения
  • Файлы .env
  • Конфигурация окружения контейнера
  • Секреты CI/CD

...он может выполнять произвольные команды ОС на хост-системе. Кроме того, резолвер __@Format__ позволяет обходить граф объектов, что может раскрыть чувствительные объекты времени выполнения и переменные окружения.


Подробности

Уязвимость возникает из-за того, что строковые резолверы Dynaconf не имеют надлежащих границ безопасности.

1. Резолвер

__@Jinja__

Резолвер __@Jinja__ отображает шаблоны с использованием полной оценки Jinja2. Однако контекст отображения не изолирован песочницей, что позволяет злоумышленникам получать доступ к внутренним атрибутам Python. Используя такие объекты, как cycler, злоумышленники могут добраться до глобальных объектов Python и импортировать модуль os.

Пример пути атаки:

root@kitploit:~
cycler → __init__ → __globals__ → os → popen()

Это приводит к произвольному выполнению команд.


2. Резолвер __@Format__

Резолвер __@Format__ выполняет форматирование строк Python с использованием внутренних объектов. Это позволяет злоумышленникам обходить граф объектов Python и получать доступ к чувствительным объектам времени выполнения.

Пример обхода:

root@kitploit:~
{this.__class__.__init__.__globals__[os].environ}

Это может раскрыть:

  • Ключи API
  • Учётные данные базы данных
  • Внутренние токены сервисов
  • Секреты окружения

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

root@kitploit:~
import os
from dynaconf import Dynaconf

# Внедрение вредоносной конфигурации
os.environ["DYNACONF_RCE"] = "@jinja {{ cycler.__init__.__globals__.os.popen('id').read() }}"

settings = Dynaconf()

print("[!] Результат выполнения команды:")
print(settings.RCE)

Воздействие

Успешная эксплуатация позволяет злоумышленникам:

  • Выполнять произвольные команды ОС на хост-системе
  • Получать доступ к чувствительным переменным окружения
  • Компрометировать секреты приложения
  • Полностью скомпрометировать работающий процесс приложения

Поскольку значения конфигурации могут поступать из конвейеров CI/CD, систем оркестрации контейнеров или внедрения окружения, эта уязвимость может стать удалённо эксплуатируемой в реальных развёртываниях.


Исправление / Смягчение

1. Используйте песочницу Jinja2 для отображения шаблонов

root@kitploit:~
from jinja2.sandbox import SandboxedEnvironment

env = SandboxedEnvironment()
template = env.from_string("{{ config_value }}")
safe_value = template.render(config_value=user_input)

2. Ограничьте использование __@Format__ доверенными значениями

root@kitploit:~
safe_value = "{name}".format(name=trusted_name)

Ссылки

  • GHSA-pxrr-hq57-q35p
  • CVE-2026-33154 — NVD
  • dynaconf/dynaconf@2fbb45e
  • Релиз Dynaconf 3.2.13
Скачать инструмент