CVE-2026-7482: Ollama leaka memoria, esposte 300mila istanze
File GGUF manipolato: attacco remoto non autenticato leaka API key e variabili d'ambiente dalla memoria di Ollama su ~300mila server esposti.
Contenuto

Cyera ha divulgato il 12 maggio 2026 CVE-2026-7482, soprannominata Bleeding Llama, una vulnerabilità con punteggio CVSS 9.1 nel loader del formato GGUF di Ollama. Un attaccante remoto non autenticato può caricare un file modello craftato e leakare l'intera memoria del processo, esfiltrando API key, variabili d'ambiente e contenuti delle conversazioni. Il rischio è immediato perché circa 300mila server Ollama sono esposti su Internet, spesso in ascolto su 0.0.0.0 e privi di autenticazione.
- Il bug è un heap out-of-bounds read con CVSS 9.1 nel parser GGUF di Ollama, causato dall'uso del pacchetto unsafe di Go nella funzione WriteTo().
- L'attacco usa un tensor shape gonfiato in un file GGUF craftato caricato via /api/create; la quantizzazione legge oltre i limiti del buffer heap.
- I dati leakati vengono esfiltrati tramite l'endpoint /api/push verso un registry controllato dall'attaccante, senza bisogno di credenziali.
- Circa 300mila server Ollama risultano esposti su Internet e le versioni precedenti alla 0.17.1 sono vulnerabili.
"An attacker can learn basically anything about the organization from your AI inference — API keys, proprietary code, customer contracts, and much more" - Dor Attias, Cyera security researcher
Perché il formato modello è un vettore di attacco aziendale
Fino a oggi la sicurezza degli engine AI locali si concentrava sui filtri output e sulle policy di sistema. Bleeding Llama dimostra che il percorso critico è il parsing del formato binario: un file GGUF craftato bypassa ogni controllo logico perché il danno avviene prima che il modello generi anche una sola risposta. Le organizzazioni che usano Ollama per processare codice proprietario, contratti o dati interni devono ora trattare ogni file modello come potenziale binary exploit, non solo come un pacchetto di pesi neurali.
La conseguenza è che i team di sicurezza devono estendere la threat model dai soli layer applicativi alla supply chain dei pesi. Un modello scaricato da repository pubblici o condiviso internamente può nascondere metadati alterati che attivano il leak non appena viene caricato nel backend Ollama. Finché il parser non effettua un controllo di coerenza tra shape dichiarato e dimensione effettiva del buffer, ogni file esterno rimane un input potenzialmente ostile.
Il parsing GGUF come nuovo attack surface per la AI locale
Ollama gestisce i modelli locali attraverso il formato GGUF, un contenitore binario che descrive pesi, metadati e struttura del tensore. La vulnerabilità si annida nella fase di importazione: l'attaccante prepara un file in cui il tensore dichiarato supera la dimensione reale del buffer. Durante la quantizzazione, il parser si fida del metadato e scorre oltre i confini allocati, leggendo l'heap adiacente. Il caricamento del file corrotto è sufficiente a innescare la fuga, senza bisogno di interagire con la chat o compromettere l'host in anticipo.
Il problema non sta nel modello neurale in sé, ma nel loader che lo importa. Ollama deve convertire e quantizzare i pesi per adattarli all'hardware locale, e durante questa operazione legge i metadati del tensore senza validarne la coerenza con la dimensione effettiva del buffer. L'attaccante sfrutta proprio questa mancata validazione per dichiarare uno shape arbitrariamente grande, forzando il ciclo di lettura a oltrepassare i limiti del segmento heap assegnato.
Come il pacchetto unsafe di Go abilita la fuga di memoria
La causa radice risiede nell'uso del pacchetto unsafe di Go all'interno della funzione WriteTo(), che gestisce la conversione dei tensori in formato a 32 bit. Quel pacchetto bypassa le garanzie native di memory safety del linguaggio, permettendo al ciclo di quantizzazione di leggere oltre il termine effettivo del buffer heap. Il risultato è un out-of-bounds read che espone byte adiacenti appartenenti allo spazio di indirizzamento del processo Ollama: chiavi, variabili d'ambiente e frammenti di conversazione restano in chiaro nella memoria rubata.
Secondo l'analisi di Cyera, la combinazione tra parsing di formato binario e assenza di sandboxing rende il processo Ollama particolarmente esposto. Una volta che i byte della memoria adiacente entrano nel flusso di dati, possono essere incapsulati e trasmessi all'estero attraverso meccanismi nativi del framework come la gestione dei registry remoti, senza necessità di malware aggiuntivo.
Da /api/create a /api/push: la catena di esfiltrazione
L'attaccante non ha bisogno di password. Carica il file malevolo tramite l'endpoint /api/create, che Ollama espone senza autenticazione su molte installazioni. Il server processa il modello, scatenando la lettura fuori limite. I dati leakati vengono poi incanalati verso l'esterno attraverso l'endpoint /api/push, indirizzati a un registry controllato dall'aggressore. In questo modo l'intera memoria del processo — API key, system prompt e contenuti utente — lascia l'infrastruttura vittima senza toccare i log tradizionali o attivare filtri sul traffico di rete.
La mancanza di un layer di autenticazione obbligatorio trasforma gli endpoint /api/create e /api/push in porte aperte. Chiunque possa raggiungere l'host, internamente o esternamente, può innescare la catena completa: upload del file, lettura fuori limite e spedizione della memoria leakata verso un registry esterno. Non servono privilegi pregressi né conoscenza del contenuto della RAM obiettivo: la struttura stessa del flusso di lavoro Ollama fornisce il canale di uscita.
Circa 300mila server esposti e l'assenza di autenticazione
Ollama conta oltre 170mila stelle GitHub e più di 100 milioni di download su Docker Hub, segnalando un'adozione massiccia sia tra sviluppatori che in ambienti aziendali self-hosted. Cyera stima che circa 300mila istanze siano raggiungibili da Internet, frequentemente configurate in ascolto su 0.0.0.0 e prive di API gateway o autenticazione nativa. Questa esposizione trasforma la vulnerabilità da teoria a miniera a cielo aperto: un singolo endpoint pubblico senza password è sufficiente per sottrarre segreti aziendali dalla memoria del motore di inference.
La memoria di un processo di inference AI raramente contiene solo pesi. Al contrario, vi risiedono system prompt preconfigurati, frammenti di conversazioni attive, chiavi per servizi terzi e parametri di connessione a database o cloud. Dor Attias, ricercatore di Cyera, ha sintetizzato la portata del rischio.
Cosa fare adesso
- Aggiornare immediatamente a Ollama 0.17.1. L'advisory identifica questa versione come correttiva; tutte le release precedenti rimangono vulnerabili all'esfiltrazione remota.
- Ruotare credenziali e segreti. API key, token di accesso e variabili d'ambiente memorizzati nella memoria dei server Ollama vanno considerati potenzialmente compromessi e sostituiti senza attesa.
- Isolare la rete del motore di inference. Disabilitare l'ascolto su 0.0.0.0, restringere l'accesso via firewall o VPN aziendale e bloccare la visibilità pubblica degli endpoint /api/create e /api/push.
- Inserire un API gateway con autenticazione obbligatoria. Ollama non prevede nativamente un controllo di accesso robusto; un reverse proxy o gateway API a monte impedisce l'upload di modelli da parte di aggressori anonimi.
Bleeding Llama sposta il mirino dalla chat all'infrastruttura: non serve più ingannare il modello con un prompt, basta corrompere il file che lo definisce. Finché gli engine di inference self-hosted manterranno autenticazione e sandboxing opzionali, il formato stesso del peso neurale rimarrà un vettore di accesso privilegiato alla memoria aziendale. Il patching è urgente, ma la lezione più larga è che la supply chain dei modelli locali va difesa con gli stessi standard della software supply chain tradizionale.
Domande frequenti
Qual è la differenza tra questa vulnerabilità e una prompt injection?
La prompt injection altera il comportamento del modello manipolando l'input testuale. CVE-2026-7482 è un difetto di memory safety nel parser binario GGUF: l'attaccante non interagisce con la chat, ma corrompe il file del modello per leggere direttamente la memoria del processo.
Se il server Ollama è dietro firewall aziendale ma senza autenticazione, è a rischio?
La stima di circa 300mila server riguarda le istanze esposte su Internet. Tuttavia, qualsiasi host che accetti connessioni non autenticate all'endpoint /api/create da utenti interni o posizionati lateralmente nella rete locale rimane vulnerabile alla stessa fuga di memoria.
La patch 0.17.1 risolve completamente il problema?
L'advisory indica la versione 0.17.1 come fix ufficiale, ma al momento non è disponibile una verifica indipendente che escluda bypass residui. Il suggerimento è aggiornare e monitorare gli accessi ai registry e agli endpoint di creazione modelli.
Fonti
- https://thehackernews.com/2026/05/ollama-out-of-bounds-read-vulnerability.html
- https://letsdatascience.com/news/ollama-vulnerability-exposes-remote-process-memory-caf67e65
- https://www.csoonline.com/article/4168584/ollama-vulnerability-highlights-danger-of-ai-frameworks-with-unrestricted-access.html
- https://news.fyself.com/ollama-out-of-bounds-read-vulnerability-causes-remote-process-memory-leak/
- https://www.cyera.com/research/bleeding-llama-critical-unauthenticated-memory-leak-in-ollama
Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.
Fonti
- https://thehackernews.com/2026/05/ollama-out-of-bounds-read-vulnerability.html
- https://letsdatascience.com/news/ollama-vulnerability-exposes-remote-process-memory-caf67e65
- https://www.csoonline.com/article/4168584/ollama-vulnerability-highlights-danger-of-ai-frameworks-with-unrestricted-access.html
- https://news.fyself.com/ollama-out-of-bounds-read-vulnerability-causes-remote-process-memory-leak/
- https://www.cyera.com/research/bleeding-llama-critical-unauthenticated-memory-leak-in-ollama