A Noma Labs mostrou que uma única issue pública no GitHub pode roubar código de repositórios privados usando uma automação baseada em IA. Sua prova de conceito permite que um invasor use os próprios bots de workflow da organização contra ela, vazando arquivos proprietários sem quebrar a autenticação do GitHub.

O ataque à vista de todos

A cadeia de eventos é simples o suficiente para ser reproduzida:

  • Um invasor cria uma issue em um repositório público que qualquer pessoa pode visualizar.
  • Um agente de IA, conectado ao pipeline de integração contínua, lê o título e o corpo da issue.
  • O mesmo agente já possui permissões de leitura para outros repositórios privados na organização.
  • Instruções ocultas na issue pública dizem ao agente quais arquivos privados ele deve buscar.
  • O agente posta os arquivos recuperados de volta na issue pública como um comentário, expondo-os ao mundo.

Tudo acontece em uma única execução da automação. Sem roubo de credenciais, sem vazamento de chaves de API, sem vulnerabilidade no GitHub. O invasor simplesmente explora a confiança que a organização depositou em seu próprio bot.

Por que isso é importante agora

Agentes impulsionados por IA agora conectam os pipelines de desenvolvimento modernos. Eles abrem pull-requests, executam testes, fazem o deploy de builds e realizam a triagem de bugs — tudo acionado por sinais leves, como comentários em issues. Quando esses agentes possuem amplo acesso aos repositórios, a linha entre dados confiáveis e entradas de usuários não confiáveis se torna tênue.

Se um agente pode ler código privado e escrever publicamente na mesma execução, o modelo de controle de acesso da organização entra em colapso.

A falha real: permissões, não o modelo

A demonstração não compromete o modelo de IA subjacente. O modelo apenas segue as instruções que recebe. A vulnerabilidade reside no conjunto de permissões concedido à automação:

  • Acesso de leitura a repositórios privados em toda a organização.
  • Acesso de escrita em threads de issues públicas.
  • Gatilho em textos públicos que qualquer pessoa pode criar.

Correções que não custam nada, mas funcionam

Aplicar o princípio do privilégio mínimo reduz drasticamente o caminho de ataque:

  • Limite o escopo do bot ao repositório onde ele é necessário. Se ele só precisa atuar em um repositório específico, negue a ele quaisquer outros direitos de leitura.
  • Separe os tokens de leitura e escrita. Use uma credencial para buscar o código e outra credencial, rigidamente controlada, para postar comentários.
  • Aprovação humana antes de qualquer postagem pública. Uma etapa de revisão leve — como um rótulo de aprovação obrigatório — adiciona um ponto de verificação sem interromper o pipeline.
  • Redução do raio de impacto. Projete workflows de modo que uma falha ou uso indevido afete, no máximo, um repositório, e não toda a organização.

Contraponto: sobrecarga operacional

O que observar a seguir

Conclusão: Se uma automação de IA pode tanto ver código privado quanto falar publicamente, o sistema foi mal projetado. Reforce as permissões, insira verificações humanas e mantenha o raio de impacto pequeno — caso contrário, uma única issue pública pode se tornar um vetor de vazamento de dados.