Exploit su LMDeploy CVE-2026-33626: attacco SSRF immediato dopo disclosure

Rilevato exploit su LMDeploy CVE-2026-33626 a soli 12 ore e 31 minuti dal disclosure. L'attacco da IP 103.116.72.119 ha sfruttato una SSRF nella funzione load_…

Contenuto

Exploit su LMDeploy CVE-2026-33626: attacco SSRF immediato dopo disclosure

Scopri anche

Exploit su LMDeploy CVE-2026-33626: attacco SSRF immediato dopo disclosure

Il Sysdig Threat Research Team ha osservato il primo tentativo di sfruttamento contro LMDeploy il 22 aprile 2026 alle 03:35 UTC, proveniente dall'IP 103.116.72.119, attribuito a Prime Security Corp. di Kowloon Bay, Hong Kong. L'attacco ha preso di mira la vulnerabilità CVE-2026-33626, associata all'advisory GitHub GHSA-6w67-hwm5-92mq. Si tratta di una Server-Side Request Forgery (SSRF) nel modulo vision-language che ha permesso l'accesso non autorizzato a servizi metadata cloud, reti interne e risorse sensibili. L'exploit è stato registrato appena 12 ore e 31 minuti dopo la pubblicazione dell'advisory pubblico del 21 aprile, una finestra temporale estremamente ridotta che evidenzia la rapidità degli attaccanti nello sfruttamento delle informazioni pubbliche.

La timeline degli eventi evidenzia una rapida evoluzione della minaccia. Il repository-level GitHub Security Advisory è stato pubblicato il 18 aprile 2026 alle 15:09. Successivamente, il 20 aprile 2026 alle 21:16 il CVE-2026-33626 è stato inserito nel NVD. L'advisory pubblico è seguito il 21 aprile, con il primo exploit rilevato alle 03:35 UTC del giorno successivo. È fondamentale notare che non esisteva alcun proof-of-concept (PoC) pubblico al momento dell'attacco; secondo i ricercatori, il testo dettagliato dell'advisory è stato sufficiente per costruire un exploit funzionante basandosi sulle informazioni fornite, rendendo la tempestività dell'aggiornamento ancora più critica.

Dettagli tecnici: la falla in load_image()

La vulnerabilità risiede specificamente nella funzione load_image() all'interno del file lmdeploy/vl/utils.py. Questa funzione effettua richieste HTTP arbitrarie per il recupero di immagini senza validare se gli URL puntino a indirizzi IP interni, privati o di loopback. La mancanza di questi controlli permetteva a un attaccante di utilizzare il server come proxy per scannerizzare reti interne, accedere a risorse sensibili o interrogare servizi metadata cloud (come quelli di AWS o Azure). Tutte le versioni di LMDeploy 0.12.0 e precedenti con supporto vision language risultano vulnerabili. Il bug è stato scoperto e riportato da Igor Stepansky di Orca Security.

Dinamica dell'attacco: modelli VLM e richieste frazionate

L'analisi dell'incidente ha permesso di ricostruire con precisione la dinamica dell'attacco. Durante una sessione della durata di otto minuti, l'attore ha eseguito 10 richieste distinte articolate in tre fasi differenti. L'analisi di Sysdig TRT evidenzia che l'attaccante ha alternato l'uso di due modelli VLM specifici per le sue richieste: internlm-xcomposer2 e OpenGVLab/InternVL2-8B. L'IP utilizzato per l'attacco, 103.116.72.119, è stato attribuito all'entità Prime Security Corp. nella regione di Kowloon Bay, Hong Kong. Questa attività dimostra un approccio strutturato e consapevole nello sfruttamento della vulnerabilità SSRF.

Mitigazione e fix nella versione 0.12.3

Per mitigare il rischio, la versione corretta LMDeploy v0.12.3 introduce la funzione _is_safe_url(). Questa implementazione blocca specificamente le richieste verso range di IP privati e indirizzi link-local, risolvendo il problema della mancanza di validazione degli URL che caratterizzava le versioni precedenti. È consigliabile aggiornare tempestivamente all'ultima versione disponibile per prevenire sfruttamenti simili.

Domande frequenti

Cos'è la vulnerabilità SSRF in LMDeploy?
La vulnerabilità SSRF (Server-Side Request Forgery) in LMDeploy permetteva a un attaccante di far eseguire richieste HTTP arbitrarie al server, includendo l'accesso a servizi metadata cloud e la scannerizzazione di reti interne, sfruttando la mancanza di validazione nella funzione load_image() nel file lmdeploy/vl/utils.py.
Quanto tempo è passato tra disclosure e primo exploit?
L'attacco è stato rilevato il 22 aprile 2026 alle 03:35 UTC, a soli 12 ore e 31 minuti dalla pubblicazione dell'advisory pubblico del 21 aprile. Questo lasso di tempo, inferiore alle 13 ore, evidenzia la rapidità di reazione degli attaccanti rispetto alle informazioni divulgate.
Perché l'advisory ha permesso di generare un exploit senza PoC?
L'advisory includeva dettagli tecnici specifici come il file interessato (lmdeploy/vl/utils.py), la funzione vulnerabile, e la spiegazione della causa radice. Queste informazioni sono risultate sufficienti per costruire un exploit funzionante senza la necessità di un proof-of-concept pubblico.
Quali versioni di LMDeploy sono vulnerabili?
Tutte le versioni 0.12.0 e precedenti con supporto vision language sono affette dalla vulnerabilità. La versione corretta è LMDeploy v0.12.3.

Fonti

Link utili

Apri l'articolo su DeafNews