Issue GitHub senza privilegi può compromettere i runner CI di Claude Code e Gemini CLI

Studio rivela che un utente base può sfruttare un issue GitHub per eseguire codice non autorizzato sui runner CI di Anthropic e Google, compromettendo la sicurezza.

Issue GitHub senza privilegi può compromettere i runner CI di Claude Code e Gemini CLI
Vulnerabilità

Immagine illustrativa generata con AI

Una ricerca di Novee Security ha mostrato che un utente senza permessi speciali può sfruttare un issue GitHub per eseguire codice sui runner CI usati dai repository di Anthropic e Google. La tecnica può inoltre alterare il flusso di esecuzione degli agenti nei workflow OpenAI.

I test hanno riguardato le configurazioni predefinite distribuite dai vendor. La ricerca è stata presentata a Black Hat USA il 5 agosto 2026; la notizia è emersa il 7 agosto 2026.

Le schede CISA indicano exploitation: none per entrambi i CVE. Non risultano prove di attacchi contro obiettivi reali.

Il problema comune è nell’harness degli agenti

Il difetto riguarda l’“harness”, il codice che collega il modello al sistema operativo, agli strumenti e ai workflow CI. Un componente tratta un valore come affidabile, mentre un componente successivo lo interpreta con privilegi più elevati.

In questo modo, un contenuto controllato da un utente esterno può attraversare i controlli e raggiungere un punto di esecuzione privilegiato. L’attacco non dipende necessariamente dal convincere il modello a eseguire un comando: in alcuni casi il payload viene processato direttamente dall’infrastruttura.

Il rischio cresce nei repository in cui gli issue possono attivare workflow, gli agenti dispongono di accesso al checkout e i passaggi successivi riutilizzano file modificati dall’agente.

Gemini CLI: command injection prima della sandbox

Google ha corretto CVE-2026-12537, una vulnerabilità di command injection nel launcher dei container di Gemini CLI. Il problema ha un punteggio CVSS v4 10.0.

Un attaccante senza privilegi poteva preparare un file .gemini/.env e ottenere l’esecuzione di comandi sul sistema host di una piattaforma CI headless, prima dell’avvio della sandbox. Non era necessario persuadere il modello a impartire il comando.

La vulnerabilità coinvolgeva anche la gestione della allowlist degli strumenti. I controlli venivano svolti durante la registrazione, ma non applicati correttamente al momento dell’esecuzione. Con l’opzione --yolo, inoltre, ogni comando richiesto dal modello veniva approvato automaticamente.

Le versioni corrette sono:

  • Gemini CLI 0.39.1
  • run-gemini-cli 0.1.22

Google ha incluso nello stesso advisory la correzione del launcher e quella della allowlist, specificando che l’intervento riguarda tutte le GitHub Actions di Gemini CLI.

Claude Code: esfiltrazione della chiave e validatore aggirabile

Anthropic ha corretto CVE-2026-54316, una vulnerabilità che permetteva di esfiltrare una chiave API attraverso il contatore pubblico dei download di Hugging Face. Il segreto poteva essere trasmesso un carattere alla volta.

Il prerequisito era la presenza di contenuto non attendibile nel contesto di Claude Code. Anthropic assegna alla falla CVSS v4 6.0, livello Moderate, mentre NVD indica CVSS v3.1 9.1. I due punteggi usano versioni diverse del sistema CVSS e non sono direttamente confrontabili.

La versione corretta è Claude Code 2.1.163. Sono indicate come interessate le release dalla 0.2.54 alla 2.1.163.

Una seconda catena non ha ricevuto un CVE né una versione corretta pubblicamente indicata. Il validatore dei comandi eliminava il testo racchiuso tra apici singoli prima di eseguire 23 controlli. Il comportamento è normalmente corretto per Bash, ma consentiva di nascondere un payload nel valore dell’opzione --receive-pack di git push.

Git eseguiva poi quel parametro lasciando il payload invariato sul runner. Il controllo risultava quindi superato, mentre il comando finale poteva eseguire codice.

Codex: il rischio nasce dalla condivisione del checkout

Nel repository openai/codex, due passaggi dell’agente venivano eseguiti nello stesso job e condividevano lo stesso checkout. Il primo poteva modificare AGENTS.md, file che il secondo caricava come insieme di istruzioni.

Inoltre, il fallimento della validazione JSON tra i due passaggi poteva avviare comunque il secondo agente. Un file scritto da un passaggio meno affidabile poteva così influenzare l’esecuzione successiva.

La configurazione attuale separa i passaggi in job distinti, usa Codex con drop-sudo e imposta una sandbox in sola lettura. La documentazione OpenAI considera i file di istruzioni del repository parte dell’input non attendibile e raccomanda di eseguire Codex come ultimo step del job.

Non è dimostrato che Codex gestisca in modo diverso un file di istruzioni scrivibile. La mitigazione documentata riguarda il workflow e l’isolamento dei passaggi.

Come ridurre il rischio nei workflow CI

Gli amministratori dovrebbero:

  • aggiornare Gemini CLI alla 0.39.1;
  • aggiornare run-gemini-cli alla 0.1.22;
  • aggiornare Claude Code alla 2.1.163;
  • verificare i workflow attivabili da issue o utenti esterni;
  • trattare AGENTS.md, .gemini/.env e ogni altro file del repository come input non attendibile;
  • separare gli agenti in job distinti;
  • usare sandbox in sola lettura e drop-sudo, quando disponibili;
  • eseguire l’agente come ultimo passaggio del job.

È inoltre opportuno controllare i repository alla ricerca di modifiche inattese ai file di istruzioni, ai workflow e alle configurazioni degli agenti. Un laboratorio pubblico per riprodurre il difetto di Claude Code è disponibile dal 18 giugno, ma non risultano prove di sfruttamento operativo delle catene descritte.

Dossier sicurezza

Leggi anche

Fonti

Questo articolo è una rielaborazione originale basata sulle fonti seguenti.

CVE trattate in questo articolo

Torna alla home

Ultime notizie di cybersecurity

Tutte le notizie di cybersecurity →