CVE-2026-7482: Analisi tecnica del leak di memoria in Ollama via GGUF

Dettagli tecnici sulla vulnerabilità CVE-2026-7482 in Ollama. Scoperta da Cyera, la falla permette il leak di chiavi API e segreti tramite file GGUF malevoli.

Contenuto

CVE-2026-7482: Analisi tecnica del leak di memoria in Ollama via GGUF
CVE-2026-7482: Analisi tecnica del leak di memoria in Ollama via GGUF

Cyera ha reso pubblica il 13 maggio 2026 una vulnerabilità critica in Ollama, il framework open-source leader per l'esecuzione locale di modelli linguistici di grandi dimensioni (LLM). La falla permette a un attaccante remoto non autenticato di esfiltrare la memoria del processo tramite l'upload di un file GGUF appositamente configurato. Catalogata come CVE-2026-7482 con un punteggio CVSS di 9.1, questa vulnerabilità mette a rischio dati sensibili come chiavi API, variabili d'ambiente e conversazioni utente.

L'incidente costringe le organizzazioni a rivalutare i protocolli di sicurezza per le infrastrutture di intelligenza artificiale on-premise. Ollama, che vanta oltre 170.000 stelle su GitHub, è diventato lo standard per l'inferenza locale. Tuttavia, questa scoperta evidenzia come la semplicità d'uso possa celare rischi strutturali nel parsing dei modelli. L'esposizione globale è significativa: le stime indicano circa 300.000 server potenzialmente vulnerabili se non aggiornati tempestivamente all'ultima versione disponibile, la 0.17.1.

Punti chiave
  • Il parser GGUF di Ollama presenta un difetto critico nella gestione della memoria durante le operazioni gestite dalla funzione WriteTo().
  • La vulnerabilità sfrutta l'assenza di validazione sulle dimensioni dei tensori dichiarate nei file GGUF, causando un heap out-of-bounds read.
  • Un attaccante può utilizzare l'endpoint /api/create per caricare il modello malevolo e l'endpoint /api/push per esfiltrare i dati della memoria verso un server esterno.
  • I segreti esposti possono includere chiavi API di provider cloud, variabili d'ambiente e frammenti di conversazioni archiviate temporaneamente nello heap.
  • La protezione richiede l'aggiornamento immediato alla versione 0.17.1 e restrizioni rigorose sugli endpoint API esposti.

Il parser GGUF e il rischio del pacchetto unsafe in Go

Ollama gestisce il caricamento dei modelli attraverso il formato GGUF, un contenitore binario ottimizzato per l'inferenza rapida. Sebbene Ollama sia scritto principalmente in Go — un linguaggio noto per la gestione sicura della memoria — alcune sezioni critiche ricorrono al pacchetto unsafe. Questa scelta tecnica permette di bypassare i controlli standard del compilatore per eseguire operazioni di basso livello sui buffer, esponendo però il software a rischi tipici di linguaggi come il C, dove la gestione manuale è soggetta a errori.

Il pacchetto unsafe rappresenta una "botola di emergenza" che annulla le garanzie di sicurezza native di Go. In contesti di calcolo intensivo, questa flessibilità è utilizzata per migliorare la velocità di elaborazione dei tensori. Tuttavia, introduce una superficie d'attacco critica se l'input non è rigorosamente validato. Nel caso di Ollama, il parser del modello GGUF si è rivelato l'anello debole di questa architettura prestazionale, permettendo letture di memoria non autorizzate a causa di controlli insufficienti sui file caricati.

La vulnerabilità è localizzata nei file fs/ggml/gguf.go e server/quantization.go, all'interno della funzione WriteTo(). Durante il caricamento, il parser legge la forma (shape) dei tensori direttamente dall'intestazione del file fornito dall'utente. Poiché il codice non verifica se il numero di elementi dichiarati corrisponda effettivamente allo spazio allocato nel buffer, un utente malintenzionato può dichiarare dimensioni arbitrarie. Questo costringe il sistema a leggere dati oltre i confini previsti del tensore, accedendo a informazioni sensibili adiacenti.

Meccanismo tecnico della falla: manipolazione del tensore

Il cuore della CVE-2026-7482 risiede nella discrepanza tra il valore restituito da tensor.Elements() e la dimensione reale del buffer di memoria allocato nell'heap. Quando la funzione WriteTo() viene invocata, essa elabora i metadati contenuti nel file GGUF senza verifiche incrociate. Se un file viene manipolato con un valore di shape gonfiato artificialmente, l'operazione di lettura prosegue oltre il limite del tensore, accedendo a blocchi di memoria che dovrebbero rimanere inaccessibili alle operazioni di inferenza.

Questo errore di heap out-of-bounds read è particolarmente insidioso perché non causa necessariamente il crash immediato del programma. Al contrario, permette la lettura silenziosa di informazioni riservate. L'attaccante ha così la possibilità di mappare aree sensibili dell'heap dove risiedono i dati di configurazione del runtime. La natura dinamica dell'allocazione in Go fa sì che nuovi dati vengano continuamente scritti in queste aree, rendendo ogni tentativo di lettura potenzialmente ricco di nuovi segreti, pronti per essere esfiltrati.

La criticità è amplificata dalla facilità con cui i metadati di un file GGUF possono essere alterati senza compromettere la struttura binaria complessiva. Questo permette di creare file che appaiono validi ai controlli superficiali, ma che diventano vettori di attacco non appena processati dalla logica di quantizzazione. La mancanza di un controllo di coerenza tra la dimensione dichiarata e l'effettiva integrità del dato binario è il difetto di design fondamentale che abilita l'intera catena di attacco remota.

La catena di attacco: esfiltrazione remota via API

L'attacco sfrutta le impostazioni predefinite di Ollama, che spesso non prevedono autenticazione per le installazioni locali. Il primo passo consiste nell'invio del file GGUF malevolo tramite l'endpoint /api/create. Questo endpoint permette agli utenti di creare nuovi modelli personalizzati partendo da file esistenti. La sua accessibilità senza credenziali rappresenta il primo vettore d'ingresso fondamentale, consentendo il caricamento di contenuti non verificati sul server di inferenza senza che l'amministratore riceva alcun avviso o richiesta di autorizzazione.

Una volta che il file viene processato dalla funzione vulnerabile, l'attaccante può innescare l'esfiltrazione dei dati letti dalla memoria. Utilizzando l'endpoint /api/push, il contenuto elaborato può essere inviato verso un registry esterno sotto il controllo dell'attaccante. Poiché l'operazione di push fa parte delle funzionalità native del framework per la distribuzione dei modelli, l'esfiltrazione può eludere alcuni sistemi di monitoraggio che non filtrano il traffico in uscita verso repository remoti, scambiando il furto di dati per un'operazione legittima.

"Un attaccante può apprendere praticamente qualsiasi cosa sull'organizzazione dalla vostra inferenza AI: chiavi API, codice proprietario, contratti dei clienti e molto altro." — Dor Attias, ricercatore di sicurezza presso Cyera

Questa combinazione di upload e push remoto trasforma un bug di lettura in uno strumento di esfiltrazione dati automatizzabile. Non è necessaria alcuna interazione da parte dell'amministratore del server, né l'accesso fisico alla macchina. È sufficiente che il server Ollama sia raggiungibile via rete affinché un attaccante possa interrogare la memoria del processo. Questo permette di ottenere i segreti necessari per tentare movimenti laterali verso altre parti dell'infrastruttura aziendale, come database o servizi cloud protetti.

Impatto sui dati: segreti, chiavi e conversazioni

L'impatto di un leak di memoria in un server LLM è vasto. Nell'heap di Ollama possono transitare variabili d'ambiente che includono token di accesso per servizi come AWS o Azure, usati per l'integrazione di modelli. Se queste chiavi vengono compromesse, l'attaccante ottiene l'accesso non solo al server locale, ma potenzialmente all'intera infrastruttura cloud collegata. Questo espande il raggio d'azione dell'intrusione ben oltre il singolo applicativo, trasformando un bug locale in una potenziale breccia di proporzioni aziendali.

Oltre ai segreti tecnici, la memoria contiene dati operativi immediati. Questo include i system prompt — le istruzioni che definiscono il comportamento dell'IA — e lo storico delle conversazioni attive degli utenti. In un contesto aziendale, queste interazioni possono riguardare dati finanziari o documenti legali protetti. La falla CVE-2026-7482 rappresenta quindi un rischio primario per la conformità alle normative sulla privacy, esponendo potenzialmente informazioni personali dei dipendenti e dei clienti memorizzate temporaneamente nello heap del processo.

La stima di circa 300.000 server Ollama esposti globalmente sottolinea l'ampiezza del rischio. Molte di queste istanze sono state configurate per test rapidi o sviluppo interno, rimanendo accessibili dall'esterno senza protezioni adeguate. La semplicità con cui Ollama può essere distribuito ha favorito una diffusione capillare, ma la sicurezza non ha tenuto il passo. In assenza di una strategia di patching rigorosa, questa base installata rappresenta oggi una superficie di vulnerabilità critica per l'intero ecosistema dell'intelligenza artificiale open-source.

Cosa fare adesso

La gravità della vulnerabilità CVE-2026-7482 richiede una risposta immediata da parte degli amministratori di sistema. Le azioni raccomandate si concentrano sulla rimozione della falla e sulla mitigazione del rischio di esposizione delle API.

  1. Aggiornare a Ollama 0.17.1. Questa versione contiene la patch ufficiale che corregge la funzione WriteTo() e implementa controlli di sicurezza nel parser GGUF. È la contromisura più efficace e prioritaria.
  2. Isolare gli endpoint API. È fondamentale configurare un firewall o un reverse proxy per bloccare l'accesso esterno agli endpoint /api/create e /api/push. L'accesso deve essere limitato esclusivamente alla rete locale protetta.
  3. Effettuare la rotazione dei segreti. Per ogni istanza esposta, si deve assumere che la memoria sia stata compromessa. È necessario ruotare chiavi API, token e password memorizzate nelle variabili d'ambiente del server per prevenire abusi post-patching.
  4. Monitorare i registri di rete. Ispezionare sistematicamente i log per identificare chiamate insolite agli endpoint di creazione modelli o tentativi di push verso registry esterni non autorizzati eseguiti prima dell'aggiornamento.

È inoltre consigliabile limitare i privilegi del processo Ollama, eseguendolo con un utente non root e in un ambiente containerizzato isolato. Questo riduce l'impatto di eventuali leak residui sulla memoria del sistema host. La sicurezza delle infrastrutture AI deve essere integrata nelle pratiche standard di gestione dei segreti aziendali. Trattare i server di inferenza come asset critici al pari dei database tradizionali è l'unico modo per garantire una postura difensiva adeguata nel lungo periodo.

Perché è importante

Il caso CVE-2026-7482 segna un punto di svolta nel dibattito sulla sicurezza dei modelli linguistici. Per anni, il self-hosting è stato promosso come la soluzione definitiva ai problemi di privacy, presupponendo che mantenere i dati "in casa" fosse sinonimo di protezione assoluta. Tuttavia, questa vulnerabilità dimostra che l'infrastruttura di inferenza locale introduce nuove classi di rischio legate alla gestione dei formati binari e alla sicurezza del codice di basso livello utilizzato per massimizzare le prestazioni hardware.

La sovranità dei dati richiede una responsabilità attiva nella manutenzione del software. Non è sufficiente isolare geograficamente un server se il software accetta input non verificati da remoto che possono svuotarne la memoria. La complessità dei framework LLM moderni richiede un monitoraggio costante e una profonda comprensione delle dipendenze tecnologiche. Il mito della sicurezza intrinseca del locale crolla di fronte a implementazioni che, per inseguire la velocità, trascurano la validazione rigorosa dei confini di memoria.

In conclusione, la vulnerabilità di Ollama ricorda che il perimetro di sicurezza non è definito solo dal confine della rete, ma dalla solidità delle funzioni di parsing dei modelli. Per le aziende che puntano sull'IA on-premise, la sicurezza deve diventare un processo continuo di verifica dell'integrità. Questo implica l'hardening delle interfacce API e l'analisi costante delle vulnerabilità emergenti, andando oltre la semplice installazione di pacchetti open-source preconfigurati per garantire una protezione reale dei dati strategici aziendali.

Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.

Fonti

Link utili

Apri l'articolo su DeafNews