Vai al contenuto
AI.info

The Pulse

JFrog scopre una vulnerabilità di esecuzione di codice senza autenticazione in LMCache

JFrog ha reso nota CVE-2026-105192, una vulnerabilità critica di esecuzione di codice da remoto nel trasporto multiprocesso ZeroMQ di LMCache. La vulnerabilità riguarda le versioni dalla 0.3.9 in poi, ma l’esposizione agli attacchi da remot

JFrog scopre una vulnerabilità di esecuzione di codice senza autenticazione in LMCache

AI.info Team · Scritto con l’IA ·

La condivisione distribuita crea l’esposizione

La modalità multiprocesso di LMCache è progettata per consentire ai processi worker di registrarsi e condividere blocchi della cache KV; secondo JFrog, quella stessa connessione può esporre un server all’esecuzione di codice da remoto senza autenticazione. La società di ricerca sulla sicurezza ha reso nota la vulnerabilità, CVE-2026-105192, il 7 ottobre, attribuendole un punteggio CVSS di 9,8. Questa gravità riguarda le installazioni in cui il trasporto ZeroMQ è raggiungibile tramite una rete instradabile, non tutte le installazioni di LMCache.

LMCache si definisce un livello di gestione della cache KV per l’inferenza dei modelli linguistici di grandi dimensioni. La sua modalità multiprocesso, chiamata anche modalità distribuita, apre un socket ZeroMQ ROUTER per la comunicazione tra i worker di LMCache. Secondo JFrog, il socket non prevede autenticazione tramite CURVE, ZAP, password o autenticazione dei messaggi.

Un solo messaggio raggiunge una deserializzazione non sicura

La vulnerabilità riguarda la gestione dei messaggi inviati tramite quel socket. Il trasporto riceve dati MessagePack, poi passa uno specifico valore di estensione a una routine di deserializzazione che chiama pickle.loads di Python. Secondo JFrog, questo avviene mentre il server decodifica una richiesta di registrazione, prima che venga eseguito il gestore delle richieste.

Di conseguenza, un solo messaggio ZeroMQ DEALER inviato senza autenticazione può eseguire codice con i privilegi del processo LMCache. La porta predefinita del trasporto è la 5555 e, secondo JFrog, le immagini ufficiali dei container eseguono il processo come root. Il codice vulnerabile è stato distribuito per la prima volta nella versione 0.3.9; all’aggiornamento dell’avviso del 7 ottobre, JFrog lo aveva individuato nell’ultima versione pubblicata su PyPI, la 0.5.5, nelle release candidate fino alla 0.5.6rc3 e nel ramo di sviluppo.

L’associazione a localhost limita l’accesso da remoto

La configurazione di rete predefinita cambia sensibilmente il rischio. Secondo JFrog, il trasporto è associato a localhost, a meno che un operatore non imposti un indirizzo raggiungibile tramite rete con --host, un’opzione usata per collegare worker su più macchine. Un’installazione standard su un solo host, lasciata con la configurazione predefinita, non è raggiungibile da altre macchine attraverso questa porta; LMCache, se usato soltanto all’interno di un processo vLLM, non la apre.

Questi limiti non rendono sicura un’installazione multiprocesso esposta: secondo JFrog, qualsiasi host in grado di connettersi al socket può attivare l’esecuzione di codice. Il punteggio CVSS di 9,8 riflette la configurazione con un indirizzo raggiungibile tramite rete, nella quale l’attacco non richiede privilegi preesistenti né interazione dell’utente. La dimostrazione pratica della società mostra l’esecuzione di un comando come utente del servizio LMCache.

JFrog non segnala alcuna versione corretta

JFrog ha dichiarato che, al momento della pubblicazione dell’avviso, non era disponibile alcuna versione corretta. Raccomanda di sostituire il serializzatore con un formato sicuro e di non passare dati di rete a pickle; raccomanda inoltre di autenticare il trasporto ZeroMQ, per esempio con CURVE o con un HMAC su ogni messaggio.

Finché una versione non risolverà la vulnerabilità, JFrog consiglia agli operatori di non associare il trasporto multiprocesso a un indirizzo raggiungibile tramite rete. La sua indicazione è di mantenere la porta su localhost o su una rete fidata del cluster e di limitarne l’accesso con un firewall. Un firewall può ridurre il numero di sistemi che raggiungono il servizio, ma non sostituisce l’autenticazione: qualsiasi sistema ancora in grado di connettersi può eseguire codice con i privilegi del processo LMCache.

Fonti

Esplora

Altri articoli