Claude web_fetch: la memoria dell'utente poteva essere esfiltrata lettera per lettera
Un ricercatore di sicurezza ha trovato un modo per far esfiltrare a Claude i dati personali accumulati nella sua memoria (nome, datore di lavoro, risposte a domande di sicurezza) verso un sito esterno controllato dall’attaccante. La vulnerabilità sfruttava web_fetch, lo strumento con cui Claude legge le pagine web. Anthropic ha confermato il problema e l’ha chiuso rimuovendo la capacità di seguire link trovati nelle pagine già scaricate.
Perché ti riguarda. Claude memorizza ciò che gli racconti. In sessioni lunghe si condividono informazioni riservate: dati di lavoro, decisioni strategiche, a volte dettagli personali. La protezione di web_fetch era considerata solida: l’agente poteva visitare solo URL digitati dall’utente o restituiti dalla ricerca interna. Il buco stava in una regola apparentemente innocua, quella che permetteva a Claude di cliccare link trovati dentro le pagine che aveva già caricato. Un sito costruito ad arte poteva usare questa porta per farsi consegnare i dati un carattere alla volta, nascondendoli nel percorso URL.
Se usi un assistente con memoria e accesso al web su dati sensibili, questo è il tipo di rischio da avere in chiaro. La patch è arrivata, ma il pattern è generale: ogni volta che un agente ha memoria privata e strumenti per comunicare verso l’esterno, la superficie di attacco cresce.
Se vuoi provarci. La vulnerabilità è già chiusa. Quello che puoi fare è ridurre il rischio quando fai leggere all’AI contenuti di terzi: il playbook su come difendersi dalla prompt injection è il punto di partenza.
Nel dettaglio
«Trifecta letale» è il nome che la comunità di sicurezza dà alla configurazione di rischio più pericolosa per un assistente AI: accesso a dati privati, accesso a strumenti che leggono contenuti esterni, e istruzioni ostili nascoste in quei contenuti. Claude chat ha tutti e tre gli ingredienti. La memoria di Claude, composta da un riassunto giornaliero delle conversazioni e da uno strumento di ricerca nella cronologia completa, costruisce profili densi degli utenti. E web_fetch dà all’agente la capacità di caricare pagine web, dove istruzioni malevole possono nascondersi.
La protezione di Anthropic era robusta sulla carta. web_fetch poteva visitare solo tre tipi di URL: quelli digitati direttamente dall’utente nel messaggio, quelli restituiti dallo strumento di ricerca web_search, o quelli trovati come collegamenti ipertestuali dentro una pagina già caricata. La terza regola sembrava innocua: serviva a lasciare che Claude cliccasse sui link che incontrava navigando, come farebbe una persona.
Ayush Paul ha capito che la terza regola era la porta d’ingresso. Se l’attaccante controlla il sito web, controlla anche quali link appaiono sulla pagina. Ha costruito un sito che funzionava come una tastiera: la homepage mostrava link verso /a, /b, /c e così via. Ogni pagina di lettera linkava a sottopagine (/aa, /ab, /ac). Il prompt di attacco, camuffato da messaggio di Cloudflare che chiedeva all’AI di «autenticarsi» specificando il nome dell’utente, invitava Claude a navigare il sito lettera per lettera. Ogni richiesta HTTP registrata dal server dell’attaccante rivelava un carattere dei dati estratti dalla memoria.
Il risultato: nome completo, città di residenza, nome del datore di lavoro. Dati che Claude aveva in memoria perché l’utente li aveva condivisi in conversazioni passate. L’attacco era invisibile per chi stava chattando: nessuna indicazione che qualcosa fosse uscito dalla sandbox.
L’attacco era anche selettivo: il sito honeypot mostrava il prompt malevolo solo ai client con Claude-User nello user-agent, rendendo più difficile scoprirlo per ricercatori o scanner automatici.
Anthropic ha chiuso la vulnerabilità rimuovendo la terza regola. Ora web_fetch non segue più i link trovati nelle pagine scaricate: può visitare solo URL digitati dall’utente o restituiti da web_search. Non ha pagato la bug bounty, sostenendo di aver identificato il problema internamente prima della disclosure.
La patch è specifica per questo vettore, ma il pattern di rischio è generale. Qualsiasi strumento che dà a un modello accesso alla rete può diventare un canale di esfiltrazione se il modello può essere istruito a codificare dati nei parametri delle richieste. La memoria degli assistenti sta diventando il dato più sensibile che molti utenti posseggono: più denso di un password manager, perché include contesto e relazioni, non solo credenziali.