Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-33154 — Prueba de concepto del exploit para CVE-2026-33154, que demuestra la ejecución remota de código mediante SSTI en el resolver Jinja de Dynaconf, con análisis y orientación de mitigación. | Kitploit
Herramientas/GitHubGitHub/redyank/cve-2026-33154
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebAprendizaje y Educación
GitHubredyank/cve-2026-33154

CVE-2026-33154

Prueba de concepto del exploit para CVE-2026-33154, que demuestra la ejecución remota de código mediante SSTI en el resolver Jinja de Dynaconf, con análisis y orientación de mitigación.

Ver Repositorio
1hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Informe de Vulnerabilidad de SSTI en Dynaconf

Resumen

Dynaconf es vulnerable a Inyección de Plantillas del Lado del Servidor (SSTI) debido a la evaluación insegura de plantillas en el resolutor __@Jinja__. Cuando el paquete jinja2 está instalado, Dynaconf evalúa expresiones de plantilla incrustadas en los valores de configuración sin un entorno aislado (sandbox).

Si un atacante puede influir en las fuentes de configuración, como:

  • Variables de entorno
  • Archivos .env
  • Configuración de entorno de contenedores
  • Secretos de CI/CD

...puede ejecutar comandos arbitrarios del sistema operativo en el sistema host. Además, el resolutor __@Format__ permite el recorrido del grafo de objetos, lo que puede exponer objetos sensibles del runtime y variables de entorno.


Detalles

La vulnerabilidad surge porque los resolutores de cadenas de Dynaconf carecen de límites de seguridad adecuados.

1. Resolutor

__@Jinja__

El resolutor __@Jinja__ renderiza plantillas utilizando la evaluación completa de Jinja2. Sin embargo, el contexto de renderizado no está aislado (sandboxed), lo que permite a los atacantes acceder a los atributos internos de Python. Utilizando objetos como cycler, los atacantes pueden alcanzar los globales de Python e importar el módulo os.

Ruta de ataque de ejemplo:

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

Esto conduce a la ejecución arbitraria de comandos.


2. Resolutor __@Format__

El resolutor __@Format__ realiza el formateo de cadenas de Python utilizando objetos internos. Esto permite a los atacantes recorrer el grafo de objetos de Python y acceder a objetos sensibles del runtime.

Recorrido de ejemplo:

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

Esto puede exponer:

  • Claves de API
  • Credenciales de bases de datos
  • Tokens de servicios internos
  • Secretos del entorno

Prueba de Concepto (PoC)

root@kitploit:~
import os
from dynaconf import Dynaconf

# Inyección de configuración maliciosa
os.environ["DYNACONF_RCE"] = "@jinja {{ cycler.__init__.__globals__.os.popen('id').read() }}"

settings = Dynaconf()

print("[!] Resultado de la Ejecución de Comandos:")
print(settings.RCE)

Impacto

La explotación exitosa permite a los atacantes:

  • Ejecutar comandos arbitrarios del sistema operativo en el sistema host
  • Acceder a variables de entorno sensibles
  • Comprometer secretos de la aplicación
  • Comprometer por completo el proceso de la aplicación en ejecución

Debido a que los valores de configuración pueden originarse en pipelines de CI/CD, sistemas de orquestación de contenedores o inyección de entorno, esta vulnerabilidad puede volverse explotable de forma remota en implementaciones del mundo real.


Remediación / Mitigación

1. Usar el Sandbox de Jinja2 para el Renderizado de Plantillas

root@kitploit:~
from jinja2.sandbox import SandboxedEnvironment

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

2. Restringir el Uso de __@Format__ a Valores de Confianza

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

Referencias

  • GHSA-pxrr-hq57-q35p
  • CVE-2026-33154 — NVD
  • dynaconf/dynaconf@2fbb45e
  • Dynaconf Release 3.2.13
Descargar herramienta