Una falla non corretta in LMCache consente l'esecuzione di codice remoto
Immagine generata con IA

Una falla non corretta in LMCache consente l'esecuzione di codice remoto

Una vulnerabilità critica non corretta in LMCache consente agli aggressori di eseguire codice sui server cache senza autenticazione. Sono interessate le versioni dalla 0.3.9 alla 0.5.5 e non esiste alcuna correzione.

Una vulnerabilità critica non corretta in LMCache consente a un aggressore di eseguire codice in remoto su un server cache senza prima effettuare l'accesso, secondo una divulgazione pubblicata da JFrog il 7 ottobre. LMCache è un software open source che accelera i server di modelli linguistici di grandi dimensioni (LLM) come vLLM, strumenti che generano ed elaborano testo con intelligenza artificiale, memorizzando il lavoro ripetuto in modo che il modello non debba ricalcolarlo. La falla risiede nella modalità multiprocesso di LMCache, in cui la cache viene eseguita come server autonomo che i worker LLM raggiungono tramite la libreria di messaggistica ZeroMQ, un sistema per lo scambio di messaggi tra programmi. Un singolo messaggio di rete predisposto a tale server può eseguire comandi con gli stessi privilegi del processo LMCache.

Il socket ZeroMQ che il server multiprocesso apre per consentire ai processi worker di registrarsi e condividere i dati memorizzati nella cache non dispone di autenticazione, il che significa che accetta messaggi senza verificare chi li ha inviati. Un tipo di messaggio viene spacchettato con pickle, un formato Python che può trasportare codice ed eseguirlo durante la decodifica dei dati. Il server spacchetta quel messaggio mentre sta ancora leggendo i suoi argomenti, prima di controllare il tipo di messaggio, quindi un messaggio predisposto può eseguire il codice del mittente. Il team di ricerca sulla sicurezza di JFrog ha scoperto la falla e la scoperta è attribuita a Yuval Moravchick. Sulle immagini container ufficiali del progetto, il processo LMCache viene eseguito come root, l'account più potente su un sistema Linux, quindi un attacco riuscito può assumere il pieno controllo della macchina, secondo JFrog.

La raggiungibilità di un server da un'altra macchina dipende da un'impostazione. Per impostazione predefinita, il server multiprocesso è in ascolto solo sulla macchina locale, quindi un altro host non può raggiungerlo. Diventa raggiungibile quando un operatore lo avvia con un indirizzo instradabile, come avviene nelle distribuzioni multi-nodo che condividono una cache tra macchine. Lo stesso esempio di distribuzione Kubernetes di LMCache, un sistema per l'esecuzione di applicazioni containerizzate, avvia il server in questo modo, in ascolto su ogni interfaccia di rete. Una copia di LMCache in esecuzione all'interno di un singolo processo vLLM non apre affatto la porta.

La vulnerabilità è tracciata come CVE-2026-105192 e ha un punteggio di gravità di 9,8 su 10, nell'intervallo critico, il rating che JFrog assegna a un server associato a un indirizzo instradabile. Colpisce LMCache dalla versione 0.3.9, rilasciata nell'ottobre 2025, fino alla 0.5.5, l'ultima versione stabile, ed è presente anche nelle release candidate 0.5.6 e nel ramo di sviluppo. Non esiste una versione corretta. LMCache non ha pubblicato un avviso di sicurezza per la falla e l'avviso di JFrog non offre agli operatori un modo per determinare se un server sia già stato attaccato.

Separatamente, un utente GitHub ha aperto sei ulteriori segnalazioni di sicurezza su LMCache il 6 ottobre, il giorno prima che CVE-2026-105192 fosse resa pubblica. Tali segnalazioni denunciano l'accesso non autenticato ai dati memorizzati nella cache appartenenti a diversi tenant, nonché l'accesso a diversi servizi di rete che eseguono comandi senza accesso. Provengono da un unico account, si basano su affermazioni proof-of-concept e non hanno CVE, né conferma da parte dei manutentori, né correzioni. Una segnalazione indica un comportamento predefinito di LMCache che da allora è cambiato: un server HTTP di amministrazione che era in ascolto su ogni interfaccia di rete nella versione 0.5.5 ascolta solo sull'host locale nelle release candidate 0.5.6.

Una falla correlata in vLLM è già stata corretta. Prima della versione 0.30.0, rilasciata il 22 settembre, una singola richiesta contenente un valore cache_salt malformato poteva mandare in crash il motore nelle distribuzioni che utilizzano il connettore multiprocesso LMCache. Quel bug di denial-of-service è tracciato come CVE-2026-105756, con valutazione 6,5, e non consente l'esecuzione di codice. L'errore fondamentale, passare dati da un socket di rete non autenticato a pickle, è lo stesso che i ricercatori hanno riscontrato in altri framework di inferenza AI nel novembre 2025, in un gruppo di falle che hanno chiamato ShadowMQ. Non è stato stabilito se il codice di LMCache condivida una fonte comune con quei progetti.

Fino a quando non verrà distribuita una versione corretta, JFrog consiglia agli operatori di non assegnare al server multiprocesso un indirizzo instradabile e di mantenere la sua porta sulla macchina locale o su una rete cluster affidabile. Un firewall che limita chi può raggiungere la porta riduce il rischio ma non lo elimina, perché qualsiasi host che può ancora aprire una connessione può eseguire codice. Per i team IT che gestiscono caching AI o qualsiasi infrastruttura esposta pubblicamente, mantenere gli endpoint di gestione e cache non autenticati fuori da Internet pubblico e limitare l'accesso a reti affidabili è esattamente il tipo di controllo che AEU-I applica nell'ambito delle revisioni di infrastrutture e consulenza orientate alla sicurezza.

Come Proteggerti

  1. Se utilizzi un server AI o un software di cache, chiedi al tuo provider o amministratore se LMCache è in esecuzione e, in tal caso, se è impostato per ascoltare solo su un indirizzo privato o locale.
  2. Non esporre mai un pannello di amministrazione, un servizio di cache o una porta di gestione direttamente a Internet pubblico; tienili dietro un firewall o una rete privata.
  3. Esegui il software server con un account utente limitato invece di un account amministratore o root, in modo che una compromissione non possa prendere il controllo dell'intera macchina.
  4. Applica patch e aggiornamenti di versione non appena i fornitori li rilasciano e controlla la pagina di sicurezza del fornitore quando viene annunciata una falla critica.
  5. Se non puoi ancora applicare la patch, riduci il rischio limitando quali computer possono connettersi al servizio, sapendo che qualsiasi computer connesso potrebbe comunque attaccarlo.
  6. Attendi una correzione ufficiale da LMCache e non affidarti solo ad avvisi di terze parti per una soluzione alternativa.

Vulnerabilità e Soluzioni

I Termini Spiegati

  • LMCache Software open source che accelera i server di modelli linguistici di grandi dimensioni memorizzando nella cache il loro lavoro ripetuto.
  • unauthenticated In grado di agire senza fornire nome utente, password o altra prova di identità.
  • remote code execution Un tipo di attacco in cui un estraneo può eseguire i propri comandi su un computer.
  • pickle Un formato di dati Python che può trasportare codice ed eseguirlo quando i dati vengono letti.
  • ZeroMQ Una libreria di messaggistica che consente a programmi o macchine diversi di scambiarsi messaggi.
  • CVE Un identificatore pubblico per una specifica vulnerabilità di sicurezza nel software.
  • root L'account più potente su un computer Linux, che può modificare o accedere a qualsiasi cosa.
  • localhost Il computer stesso, non raggiungibile da altre macchine.

Servizi AEU correlati