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.

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.