Una modifica del 18 giugno 2026 nel repository pubblico snowflakedb/snowflake connector net inseriva direttamente il titolo di una issue in un comando shell. La falla riguardava l'automazione GitHub Actions, non il connettore .NET distribuito da Snowflake.
Research answer

Create a landscape editorial hero image for this Studio Global article: How did GitHub’s Copilot Autofix AI introduce a shell-injection vulnerability into Snowflake’s public .NET connector repository, how did Wiz. Article summary: The incident was a GitHub Actions workflow injection in Snowflake’s public `snowflake-connector-net` repository, not a flaw in the .NET connector’s shipped runtime code. A June 18, 2026 change in PR #1218 made an issue t. Topic tags: general, general web, user generated. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fa
L'incidente di Snowflake riguardava una vulnerabilità di iniezione nei workflow GitHub Actions del repository pubblico snowflakedb/snowflake-connector-net, non una falla nel connettore .NET distribuito ai clienti. Una modifica unita il 18 giugno 2026 inseriva il titolo controllabile di una issue GitHub all'interno di un comando shell. Cinque giorni dopo, il Red Agent autonomo di Wiz ha individuato il problema e lo ha sfruttato durante un'esercitazione autorizzata del programma HackerOne, riuscendo a estrarre credenziali per il Jira interno di Snowflake.
Il codice vulnerabile si trovava nel workflow .github/workflows/jira_issue.yml, eseguito ogni volta che veniva aperta una issue. La pull request #1218, intitolata “SNOW-2069227: Update Jira workflows”, aveva sostituito un approccio più sicuro — il passaggio del titolo tramite una variabile d'ambiente e la costruzione del JSON con jq — con l'interpolazione diretta di ${{ github.event.issue.title }}run:.
La differenza era sostanziale. GitHub espande l'espressione prima che il comando venga interpretato dalla shell. Un titolo contenente un apostrofo poteva quindi chiudere la stringa prevista e aggiungere comandi shell scelti dall'attaccante. L'uso successivo di sed per ripulire il valore non poteva annullare un'interpretazione già avvenuta a monte.
Anche il trigger issues: opened
Il commit attribuiva “Copilot Autofix powered by AI” come coautore e la revisione assistita dall'AI non aveva segnalato il problema. Tuttavia, le evidenze disponibili non stabiliscono se Copilot abbia generato la modifica non sicura oppure se abbia semplicemente partecipato alla revisione di un cambiamento scritto da una persona. La conclusione più prudente è che Copilot fosse associato alla modifica e non abbia rilevato l'iniezione, non che l'autore effettivo del codice sia stato dimostrato.
Il Red Agent di Wiz ha analizzato l'organizzazione GitHub pubblica di Snowflake alla ricerca di schemi rischiosi nei sistemi CI/CD. Ha identificato il workflow Jira come un componente che trasferiva dati non attendibili in un blocco shell run: e ha dedotto che un titolo di issue appositamente costruito avrebbe potuto consentire l'esecuzione arbitraria di comandi sul runner GitHub Actions.
Il 23 giugno — cinque giorni dopo l'unione della modifica vulnerabile — l'agente ha aperto una issue manipolata nell'ambito del programma di divulgazione HackerOne di Snowflake. Il titolo è uscito dalla stringa shell prevista e ha fatto sì che il workflow inviasse le credenziali Jira a un callback out-of-band, cioè a un endpoint esterno usato per verificare in modo controllato l'esecuzione del payload.
Non si è trattato di un'intrusione incontrollata, ma di un test di sicurezza autorizzato. Il risultato tecnico restava significativo: una normale issue pubblica poteva raggiungere un passaggio del workflow che gestiva credenziali interne e trasformarsi in esecuzione di comandi.
Il workflow compromesso aveva accesso alla configurazione Jira interna di Snowflake, inclusi l'URL del servizio, l'indirizzo email dell'utente e il token API. Il token recuperato era associato a qa@snowflake.net; Wiz lo ha utilizzato per autenticarsi al portale Jira interno e valutare la possibile esposizione.
Le ricostruzioni disponibili descrivono un accesso in lettura a progetti Jira relativi a ingegneria, conformità e sicurezza e attività di bug bounty. Le evidenze fornite non definiscono però l'intero insieme dei permessi del token né offrono un inventario definitivo di tutti i dati raggiungibili. La conclusione sostenibile è quindi che il token consentisse l'accesso a contenuti Jira interni sensibili, non che garantisse accesso illimitato ai sistemi Snowflake.
L'asset vulnerabile era l'automazione CI/CD del repository. Non è stata segnalata alcuna versione distribuita del connettore Snowflake per .NET interessata, perché il problema riguardava il workflow GitHub Actions e non il codice eseguito dal connettore.
Wiz ha segnalato la vulnerabilità il 23 giugno. Snowflake ha corretto il workflow nello stesso giorno e ha ruotato la credenziale Jira esposta il giorno successivo.
L'azienda ha poi esaminato i log di audit e ha concluso che Wiz era l'unico attore presente durante la finestra di esposizione. Wiz ha inoltre dichiarato di aver cancellato in modo sicuro i dati ottenuti durante la prova di concetto.
Non sono stati segnalati accessi non autorizzati da parte di terzi, non è stata riportata un'assegnazione CVE e non è stata identificata alcuna versione del connettore interessata. Questi elementi delimitano l'impatto confermato, ma non rendono sicuro il design originale del workflow: un titolo di issue pubblico non avrebbe dovuto diventare parte di un comando shell in un processo che gestiva credenziali interne.
Il caso va oltre Snowflake e Copilot. Titoli di issue e pull request, nomi dei branch, commenti e altri valori provenienti dalle espressioni GitHub devono essere trattati come input potenzialmente ostile ogni volta che entrano in un comando shell.
Un workflow più sicuro dovrebbe:
run:;jq per costruire JSON, evitando di assemblare stringhe shell;L'episodio mostra con particolare chiarezza una dinamica emergente: un sistema di coding assistito dall'AI può non riconoscere una modifica pericolosa in una pipeline CI/CD, mentre un agente offensivo autonomo può individuarla e verificarla nel giro di pochi giorni. L'automazione può accelerare sia la correzione sia lo sfruttamento delle falle, ma non sostituisce una revisione indipendente.
Studio Global AI
This page includes a source-backed answer you can continue inside Studio Global.
Una modifica del 18 giugno 2026 nel repository pubblico snowflakedb/snowflake connector net inseriva direttamente il titolo di una issue in un comando shell.
Una modifica del 18 giugno 2026 nel repository pubblico snowflakedb/snowflake connector net inseriva direttamente il titolo di una issue in un comando shell. La falla riguardava l'automazione GitHub Actions, non il connettore .NET distribuito da Snowflake.
Il commit indicava “Copilot Autofix powered by AI” come coautore, ma le evidenze disponibili non dimostrano se l'AI abbia generato la modifica o l'abbia soltanto revisionata senza individuare il problema.