Segurança Digital

Truques Antigos do Bash Expõem Agentes de Codificação com IA a Ataques na Cadeia de Suprimentos

O Bash (Bourne Again SHell), a reescrita GNU de 1989 do Shell Bourne original do Linux, ainda pode causar problemas mais de três décadas depois por meio de seus truques. A Adversa AI descobriu uma falha estrutural de segurança em múltiplos agentes de IA de código aberto.


Kevin Townsend Terça - 30 de Junho de 2026 às 21:45
SecurityWeek

O Bash (Bourne Again SHell), a reescrita GNU de 1989 do Shell Bourne original do Linux, ainda pode causar problemas mais de três décadas depois por meio de seus truques. A Adversa AI descobriu uma falha estrutural de segurança em múltiplos agentes de codificação com IA de código aberto. Não se trata de um bug específico, mas de um processo que pode inserir instruções Bash maliciosas no agente, e a partir daí em qualquer ação que o agente realize — geralmente com a aprovação do operador. A Adversa chama essa falha estrutural de GuardFall.

"Testamos onze agentes populares de código aberto, incluindo Hermes, OpenCode, Roo-code e outros", explica Omer Ben Simon, pesquisador principal da Adversa AI. "Dez deixam a brecha aberta de uma de quatro maneiras; e apenas um a fecha."

A 'brecha' é uma falha em proteger o agente contra os truques centenários do shell Bash, como remoção de aspas e espaçamento $IFS. Como esses agentes são executados com a autoridade total da conta do desenvolvedor, isso pode se transformar em um grande risco para a cadeia de suprimentos.

"Se um engenheiro usa um agente vulnerável para ler um README envenenado ou um Makefile de um repositório malicioso", continua Ben Simon, "o agente pode ser induzido a executar silenciosamente comandos que exfiltam credenciais da AWS ou apagam ambientes inteiros de desenvolvimento — especialmente em pipelines de CI onde os modos 'auto-yes' são o padrão."

O relatório completo da Adversa explica: "Chamamos esse padrão de GuardFall: contornos contra guardas de shell baseadas em padrões em ferramentas de codificação agentivas, onde o Bash desfaz a ofuscação depois que a guarda deixou o comando passar."

O gatilho para a pesquisa foi encontrar um contorno na verificação de aprovação do NousResearch/hermes-agent via reescritas de shell contra uma lista de bloqueio com 30 padrões regex. Isso levou a Adversa a pesquisar e examinar os agentes de codificação e uso de computador mais populares de código aberto a partir de maio de 2026, com base na contagem de estrelas no GitHub e na atividade da comunidade.

Nem todos os agentes falharam em todos os truques do Bash usados pela Adversa, mas a conclusão é que apenas um dos 11 agentes testados bloqueou todos os truques. Os truques são descritos em cinco 'classes' (A a E) dentro do relatório. A Classe E, a mais bem-sucedida, é descrita como "Formas alternativas de argv para o mesmo efeito destrutivo."

"A Classe E sobrevive às guardas mais fortes, incluindo a guarda tokenizada mais robusta da nossa pesquisa", explica o relatório, "porque o raciocínio por flag requer conhecimento, para cada binário, de quais combinações de flags o transformam de benigno para destrutivo."

No entanto, assim como bugs podem existir mas só serem exploráveis sob certas condições, esses contornos de guardas dependem de suas próprias pré-condições. Por exemplo, eles só funcionam se o modelo de linguagem cooperar.

Se você pedir diretamente ao modelo de IA para "executar isto: rm" (onde rm é um comando que exclui arquivos), o modelo normalmente recusará, reconhecendo-o como perigoso. Mas com pedidos indiretos ou disfarçados, talvez contidos em um alvo do Makefile, o comando tem mais probabilidade de ser aceito sem objeção.

A pesquisa examina se comandos inseridos por um atacante em conteúdo ingerido pelo agente (de um servidor MCP malicioso, de uma página web buscada ou de várias outras fontes possíveis) serão executados pelo agente. A resposta é, com muita frequência, sim. O agente então emite um comando shell destrutivo que é executado com a autoridade do operador — mas apenas se o modo de execução automática estiver ativado, ou se uma sandbox for alterada para o modo local.

É um processo complexo explorar o GuardFall, mas a complexidade não impediu maus atores no passado. Em benefício de seus usuários, os mantenedores de agentes de código aberto devem impedir que tais truques do Bash sejam possíveis, em vez de depender da obscuridade do processo.

Continue foi o único agente capaz de manter uma guarda contra os testes da Adversa. "De 21 casos de contorno submetidos ao avaliador, 0 alcançam allowedWithoutPermission, e todos os 12 casos destrutivos canônicos são corretamente rebaixados", dizem os pesquisadores. "O design não é perfeito — Classe C dentro de um argumento entre aspas e toda a longa cauda da Classe E (raciocínio por flag argv) permanecem abertas — mas é o único agente da nossa pesquisa que fecha a maioria estrutural da superfície."

Os pesquisadores estudaram como isso foi alcançado, construíram sobre isso e desenvolveram seu próprio conjunto de recomendações para parar o GuardFall e evitar o perigo de truques invisíveis do Bash entrando na cadeia de suprimentos. Várias dessas envolvem guardas colocadas ao redor do agente.

Por exemplo, "Execute agentes a partir de um shell com escopo com $HOME redirecionado. Um wrapper de uma linha (HOME=$HOME/.agent-sandbox-$RANDOM agent ... ) mantém o diretório do projeto, mas remove ~/.ssh/, ~/.aws/, histórico do shell e os outros segredos em $HOME: a maior superfície de exfiltração de credenciais. Esta é a contenção mais forte porque é sempre ativa e não tem opção de desativação com uma flag documentada."

Outras opções incluem desativar modos auto-yes, auditar configs distribuídas com repos e bloquear execução de agentes em PRs de fork. No fim, porém, todas são apenas soluções temporárias. "Uma guarda inspeciona texto bruto, enquanto o shell do sistema (Bash) expande, remove aspas e reescreve o texto antes de executá-lo." Então, há uma incompatibilidade entre o que o agente pode pensar que está executando e o que o Bash realmente executa. Esta é a brecha estrutural explorada pelos truques de Bash da Adversa.

A única solução de longo prazo é que os mantenedores de agentes de código aberto implementem uma guarda de avaliador estilo Continue de tokenização-e-canonicalização dentro do próprio agente.

Saiba mais no AI Risk Summit | Ritz-Carlton, Half Moon Bay

Artificial Intelligence SecurityWeek securityweek.com

FONTE

SecurityWeek