Vai al contenuto

llama.cpp b11000 corregge una vulnerabilità use-after-free nel backend RPC: impatto, limiti e checklist operativa.

L’ANALISI

llama.cpp b11000: cosa corregge la falla RCE del backend RPC

Il server RPC invalidava troppo tardi un grafo con puntatori a buffer liberati. b11000 chiude il percorso indicato dal progetto e richiede un aggiornamento prioritario per le istanze raggiungibili da client non fidati.

3 min di letturaFatti, limiti e fonti primarie
Release ufficiale llama.cpp b11000 con correzione di sicurezza RPC
Screenshot della release ufficiale b11000. La descrizione tecnica del progetto collega il use-after-free del backend RPC a un percorso di esecuzione remota di codice.

In breve: se il backend RPC di llama.cpp accetta connessioni da client non fidati, b11000 va trattata come una correzione di sicurezza prioritaria. La patch elimina i grafi in cache quando viene liberato un buffer, così GRAPH_RECOMPUTE non può riutilizzare puntatori pendenti.

Dove nasce il problema

Il server RPC conserva l’ultimo grafo di calcolo per dispositivo, così GRAPH_RECOMPUTE può rieseguirlo senza ricevere nuovamente i tensori. I nodi del grafo mantengono puntatori diretti ai buffer validi al momento del calcolo. Prima della patch, FREE_BUFFER poteva liberare uno di quei buffer senza invalidare il grafo.

Dal use-after-free alla RCE

Secondo la descrizione upstream, un client remoto non autenticato poteva rimodellare la memoria liberata con successive operazioni ALLOC_BUFFER e SET_TENSOR. La successiva riesecuzione del grafo attraverso i puntatori pendenti poteva esporre indirizzi di libc e deviare la vtable usata da BUFFER_CLEAR, fino all’esecuzione di codice.

Cosa cambia in b11000

La patch richiama l’invalidazione dei grafi in cache dentro free_buffer(). Quando arriva GRAPH_RECOMPUTE, il controllo già presente rifiuta il grafo nullo e il client torna a GRAPH_COMPUTE. Il progetto specifica che non cambia né il protocollo né l’API.

Chi deve intervenire prima

La priorità è per chi usa il backend RPC attraverso reti condivise, container multi-tenant, laboratori o nodi distribuiti accessibili da client non pienamente fidati. Un processo solo locale, senza RPC esposto, non presenta lo stesso percorso remoto descritto nella release.

Condizioni e limitazioni

La fonte primaria non assegna un CVE o un punteggio CVSS, non delimita la prima build vulnerabile e non segnala exploit osservati. b11000 è marcata come pre-release: chi non può adottarla subito dovrebbe isolare l’RPC con firewall e autenticazione a monte, poi validare la compatibilità prima del rollout.

Checklist pratica

  • Inventariare ogni processo llama.cpp avviato con backend o server RPC.
  • Verificare bind address, porte pubblicate, firewall, VPN e segmentazione tra client e worker.
  • Bloccare subito l’accesso da reti e tenant non fidati.
  • Aggiornare almeno a b11000 o a una build successiva che contenga la patch #24292.
  • Riavviare i worker e confermare la versione effettivamente in esecuzione.
  • Controllare log, crash anomali e connessioni RPC inattese; in caso di sospetto, trattare la macchina come potenzialmente compromessa.

Fonti primarie

Radar AI · a cura di Francesco Gruner

Chiedi al sito.

Assistente OpenAI

Le domande vengono inviate a OpenAI. Non inserire dati personali o riservati. Privacy.

Verifica le risposte nelle fonti. 16 messaggi al giorno per rete.

Cosa cerchi? Ti indico le pagine utili.