Uma mudança incorporada em 18 de junho de 2026 no repositório público snowflakedb/snowflake connector net inseriu diretamente o título de uma issue em um comando de shell. A falha estava na automação do GitHub Actions, não no código do Snowflake Connector para .NET distribuído aos clientes.
Resposta de pesquisa

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
O incidente da Snowflake foi uma falha de injeção em um workflow do GitHub Actions no repositório público snowflakedb/snowflake-connector-net — e não uma vulnerabilidade no conector .NET instalado pelos clientes. Uma mudança incorporada em 18 de junho de 2026 colocou o título controlado de uma issue dentro de um comando de shell. Cinco dias depois, o Red Agent, sistema autônomo de segurança ofensiva da Wiz, encontrou e explorou a falha durante um exercício autorizado pelo programa da Snowflake no HackerOne.
O código vulnerável estava em .github/workflows/jira_issue.yml, acionado sempre que uma issue era aberta. A PR #1218, intitulada “SNOW-2069227: Update Jira workflows”, substituiu um padrão mais seguro — que passava o título por uma variável de ambiente e usava jq para montar o JSON — pela interpolação direta de ${{ github.event.issue.title }}run:.
Essa diferença foi decisiva. O GitHub expande a expressão antes de o shell executar o comando. Assim, um título malicioso contendo aspas simples poderia encerrar a string prevista e acrescentar comandos escolhidos pelo atacante. A tentativa de higienizar o valor depois, com sed, não conseguia desfazer a interpretação já realizada pelo shell.
O gatilho issues: opened
O commit creditou “Copilot Autofix powered by AI” como coautor, e a revisão assistida por IA não identificou o problema. No entanto, as evidências disponíveis não determinam se o Copilot gerou a alteração insegura ou se apenas participou da autoria e da revisão de uma mudança feita por uma pessoa. A conclusão mais precisa é que o Copilot esteve associado à alteração e não detectou a injeção — não que a autoria do modelo esteja comprovada.
O Red Agent analisou a organização pública da Snowflake em busca de padrões de risco em pipelines de CI/CD. Ele identificou que o workflow do Jira usava dados não confiáveis dentro de um bloco run: e inferiu que um título de issue especialmente criado poderia resultar na execução arbitrária de comandos no runner hospedado pelo GitHub Actions.
Em 23 de junho — cinco dias após a entrada em produção da mudança vulnerável — o agente abriu uma issue preparada como parte do programa de divulgação de vulnerabilidades da Snowflake no HackerOne. O título escapou da string do shell e fez o workflow enviar as credenciais do Jira para um callback fora de banda controlado pela Wiz para a prova de conceito autorizada.
Portanto, não se tratou de uma invasão clandestina: foi um teste de segurança autorizado. Ainda assim, o risco demonstrado era real. Uma simples issue pública podia alcançar uma etapa do workflow que manipulava credenciais e converter a criação de texto em execução de comandos.
O workflow comprometido tinha acesso à configuração do Jira interno da Snowflake, incluindo a URL do serviço, o e-mail do usuário e um token de API. O token recuperado estava associado a qa@snowflake.net; a Wiz o utilizou para autenticar no portal interno e avaliar a possível exposição.
As reportagens indicaram acesso de leitura a projetos do Jira relacionados a engenharia, conformidade de segurança e atividades de bug bounty. As evidências fornecidas, porém, não estabelecem todo o conjunto de permissões do token nem apresentam um inventário definitivo de todos os registros que poderiam ser alcançados. A conclusão mais segura é que a credencial permitia acessar conteúdo interno sensível do Jira — não que oferecesse acesso irrestrito aos sistemas da Snowflake.
O ativo vulnerável era a automação de CI/CD do repositório. Não foi identificada uma versão distribuída do Snowflake Connector para .NET afetada, porque a falha estava no workflow do GitHub Actions, e não no código de execução do conector.
A Wiz comunicou o problema em 23 de junho. A Snowflake corrigiu o workflow no mesmo dia e rotacionou a credencial do Jira exposta no dia seguinte.
Depois, a empresa revisou os registros de auditoria e concluiu que a Wiz foi a única agente durante a janela de exposição. A Wiz também afirmou ter excluído com segurança os dados obtidos na prova de conceito.
Não foi reportado acesso não autorizado por terceiros, não houve atribuição de um CVE e nenhuma versão afetada do conector foi identificada. Esses limites definem o impacto confirmado do caso, mas não tornam seguro o desenho original: um título de issue público jamais deveria ter sido transformado em parte de um comando de shell em um workflow que lidava com credenciais internas.
A principal lição vai além da Snowflake e do Copilot. Títulos de issues e pull requests, nomes de branches, comentários e outros valores vindos de expressões do GitHub devem ser tratados como entrada hostil sempre que chegarem a um comando de shell.
Práticas mais seguras incluem:
run:.jq, para montar JSON, evitando a composição de strings de shell.O episódio resume um risco emergente: um sistema de programação assistida por IA pode não perceber uma alteração perigosa em CI/CD, enquanto um agente autônomo de segurança ofensiva consegue encontrá-la e validá-la em poucos dias. A automação pode acelerar tanto a correção quanto a exploração — mas não substitui uma revisão independente.
Studio Global AI
Esta página inclui uma resposta baseada na fonte que você pode continuar em Studio Global.
Uma mudança incorporada em 18 de junho de 2026 no repositório público snowflakedb/snowflake connector net inseriu diretamente o título de uma issue em um comando de shell.
Uma mudança incorporada em 18 de junho de 2026 no repositório público snowflakedb/snowflake connector net inseriu diretamente o título de uma issue em um comando de shell. A falha estava na automação do GitHub Actions, não no código do Snowflake Connector para .NET distribuído aos clientes.
Em 23 de junho, o Red Agent, da Wiz, criou uma issue de teste autorizada e usou a injeção para extrair credenciais do Jira interno da Snowflake.