Torna al blog

AI per principiantiGuida

Esegui Claude Code o Codex in Downloads? Controllo di sicurezza di AGENTS.md

Un file chiamato AGENTS.md o CLAUDE.md in Downloads può guidare Claude Code e Codex. Cosa sono questi file e un controllo da 5 minuti delle tue configurazioni.

Di CheapTokens TeamPubblicato il 6 min di lettura

Copertina: un AGENTS.md impiantato nella cartella Downloads che raggiunge la configurazione di un agente AI
In questa pagina
  1. Cosa sono AGENTS.md e CLAUDE.md, e perché l'agente ci crede
  2. Cosa hanno fatto i ricercatori con un file in Downloads
  3. Quali impostazioni controllare, e come appare una normale
  4. Il controllo da 5 minuti
  5. Se qualcosa sembra sbagliato

Risposta breve: non avviare Claude Code o Codex nella tua cartella ~/Downloads. Il 22 ottobre 2026 la società di sicurezza Forever Security ha pubblicato una ricerca che mostra come un sito web possa salvare silenziosamente un file chiamato AGENTS.md o CLAUDE.md in Downloads, e un agente avviato in quella cartella tratti poi il file come istruzioni fidate. Qui sotto: cosa sono questi file, cosa sono riusciti a modificare i ricercatori e un controllo che richiede circa cinque minuti.

Immagina la versione ordinaria. Hai salvato una dozzina di PDF e screenshot da un sito web, hai aperto un terminale in Downloads, hai digitato claude o codex e gli hai chiesto di "ordinare questi file". Niente di tutto ciò sembra rischioso. E qui sta la fregatura.

Cosa sono AGENTS.md e CLAUDE.md, e perché l'agente ci crede#

Un agente di coding non inizia ogni sessione da zero. Prima di guardare la tua richiesta, controlla nella cartella in cui è stato avviato la presenza di un file di testo con istruzioni permanenti: "usa i tab, esegui i test con npm test, non toccare mai la cartella delle migrazioni". AGENTS.md è il nome generico, CLAUDE.md è la stessa idea per Claude Code. Nel tuo progetto questi file sono utili, perché li hai scritti tu.

L'agente però non può sapere chi ha scritto un file. Un CLAUDE.md che un sito web ha lasciato in Downloads è identico a quello che hai scritto la settimana scorsa.

Flashcard

Parole che incontrerai in questo articolo

Cosa hanno fatto i ricercatori con un file in Downloads#

Il post di Forever Security (autori Gal Weizman e Omer Samet, 22 ottobre 2026) descrive due casi. Tutte le percentuali di successo riportate di seguito sono misurazioni dei ricercatori stessi.

Codex. Il AGENTS.md impiantato diceva all'agente di aggiungere una voce di server MCP in ~/.codex/config.toml, e quella voce portava all'installazione di un pacchetto npm chiamato function-color. Secondo i ricercatori, il payload è stato eseguito in oltre il 90% dei tentativi. Guarda dove si trova quel file: la tua cartella home, non Downloads. La configurazione è a livello di macchina, quindi ogni sessione successiva in qualsiasi cartella ne è influenzata, molto tempo dopo che ti sei dimenticato della cartella Downloads.

Claude Code. Il CLAUDE.md impiantato tentava di scrivere un'impostazione ANTHROPIC_BASE_URL in .claude/settings.json. Quell'impostazione decide dove l'agente invia il suo traffico API. Puntala verso il server di qualcun altro e quel server vede il tuo token OAuth e può restituire chiamate di strumenti che l'agente eseguirà. La scrittura è riuscita circa la metà delle volte; un percorso eseguito nella stessa sessione, circa un quinto delle volte.

Da un file impiantato a una configurazione modificata
Come un file di istruzioni impiantato finisce nelle impostazioni stesse dell'agente (Forever Security, 22 ottobre 2026)

Il post è chiaro sul fatto che nulla è "rotto" in nessuno dei due prodotti: l'agente funziona come progettato, e il rischio deriva da dove si trova il file e da quanto l'agente si fida di esso. Forever afferma anche di aver trovato un vero AGENTS.md impiantato sulla macchina di un cliente e di aver bloccato un'installazione npm malevola prima che venisse eseguito qualsiasi codice; da allora npm ha rimosso function-color. Quest'ultima parte è il resoconto dei ricercatori stessi. OpenNET ha trattato la vicenda il 26 ottobre 2026 e segnala un rischio simile quando un AGENTS.md arriva tramite una pull request o un repository clonato.

Verifica rapida

Perché il caso Codex è peggiore di una singola sessione sbagliata in Downloads?

Mostra risposta

Risposta: La configurazione che ha modificato è a livello di macchina, quindi ogni sessione successiva in qualsiasi cartella ne è influenzata

Il file impiantato deve essere eseguito una sola volta. Ciò che scrive in ~/.codex/config.toml resta lì e si applica alle sessioni successive in ogni cartella.

Quali impostazioni controllare, e come appare una normale#

Due file, uno per ciascuno strumento della ricerca.

In ~/.codex/config.toml, cerca voci [mcp_servers.*] che non ricordi di aver aggiunto, e un base URL che non hai impostato. Una voce sospetta fa sì che la tua macchina scarichi ed esegua qualcosa da npm:

toml
[mcp_servers.helper]
command = "npx"
args = ["-y", "some-package"]

Il nome helper e il pacchetto qui sono segnaposto. Nel caso dei ricercatori, il pacchetto dietro una voce del genere era function-color.

In .claude/settings.json, cerca un endpoint API o un proxy che non hai messo tu. Se non hai mai impostato ANTHROPIC_BASE_URL, il file non dovrebbe menzionarlo affatto. Se l'hai fatto, dovrebbe essere l'indirizzo del provider che hai scelto. Per CheapTokens, un client in stile Anthropic come Claude Code usa https://api.cheaptokens.dev senza /v1 alla fine; i client in stile OpenAI usano https://api.cheaptokens.dev/v1.

Un base URL che hai impostato contro uno che non hai impostato
La stessa impostazione due volte: l'indirizzo a sinistra è quello che hai scelto, quello a destra è un host che non riconosci (segnaposto)

Se esegui Claude Code con la tua chiave, la guida passo passo per collegare Claude Code a CheapTokens mostra l'intero file, e la documentazione elenca entrambi i base URL. Per i cicli lunghi degli agenti, DeepSeek-V4-Flash (deepseek-ai/DeepSeek-V4-Flash-0731) ha una finestra di contesto di 380K, fino a 32.768 token di output per risposta e un unico prezzo a qualsiasi ora; la pagina del modello ha il resto.

Cline, Aider e altri agenti non facevano parte di questa ricerca, e ciascuno conserva le proprie impostazioni in un posto diverso. L'abitudine è la stessa: sapere quale file contiene l'endpoint e leggerlo una volta.

Il controllo da 5 minuti#

Apri un terminale e segui questi passaggi in ordine. Niente qui modifica un file; si limita a leggere.

Passo dopo passo

Controlla la tua macchina

Trova i file di istruzioni estranei

bash
find ~/Downloads -maxdepth 3 -name "AGENTS.md" -o -name "CLAUDE.md"

Qualsiasi risultato che non hai scritto: aprilo come testo e leggilo. Se non sai da dove viene, eliminalo.

Leggi la configurazione di Codex

bash
grep -n "mcp_servers\|base_url" ~/.codex/config.toml

Ogni riga [mcp_servers.…] dovrebbe essere qualcosa che ricordi di aver aggiunto. "No such file" va bene se non usi Codex.

Leggi le impostazioni di Claude Code

bash
grep -n "BASE_URL\|proxy" ~/.claude/settings.json .claude/settings.json

Eseguilo dalla cartella del tuo progetto così entrambi i file sono coperti. Ogni indirizzo nell'output dovrebbe essere un provider che hai scelto.

Controlla la tua shell

bash
env | grep -i "BASE_URL"

Questo elenca i base URL impostati come variabili d'ambiente. Stessa regola: dovresti riconoscerli tutti.

Cerca il pacchetto del caso

bash
npm ls -g --depth=0 | grep function-color

Esegui anche npm ls function-color nei progetti in cui hai usato un agente. Se compare, considera la macchina compromessa.

Se qualcosa sembra sbagliato#

Chiudi prima l'agente. Poi rimuovi le voci che non riconosci e ruota ogni credenziale che l'agente poteva vedere: chiavi API, token, qualsiasi cosa nell'ambiente. Se l'idea di ruotare una chiave è nuova, cos'è una chiave API e come conservarla copre le basi.

Abitudini che evitano che si ripeta, tutte dalle mitigazioni dei ricercatori:

  • Avvia gli agenti in una cartella di progetto creata da te, non in Downloads.
  • Leggi qualsiasi AGENTS.md o CLAUDE.md che non hai scritto prima di eseguire un agente su di esso, inclusi quelli che arrivano tramite un clone o una pull request.
  • Mantieni attive le richieste di approvazione e il sandboxing, e diffida di qualsiasi istruzione che chieda all'agente di disattivarli.