Radar Tech: 4 CVEs no AWS Strands Agents Tools em 23 dias — por que o schema da ferramenta virou a nova superfície de ataque dos agentes de IA
A primeira-party tooling de agentes da AWS tomou quatro advisories em menos de um mês. Todos têm a mesma causa raiz: parâmetros sensíveis expostos como input controlado pelo LLM. Resumo da notícia e o que ela ensina para quem arquiteta agentes.
Cada vez que um agente de IA toca em uma ferramenta — ler um arquivo, gravar memória, chamar uma API — ele está passando por um schema. E essa camada, até pouco tempo tratada como detalhe de implementação, acabou de dar o seu maior balão de segurança.
Entre 15 de julho e 6 de agosto de 2026, as Strands Agents Tools — o pacote de ferramentas first-party do SDK de agentes da AWS — receberam quatro CVEs em 23 dias. Não são bugs isolados.
As quatro falhas
- CVE-2026-15746 (15/jul) — a ferramenta
elasticsearch_memoryexpunha os parâmetroses_url,cloud_ideapi_keyao modelo. Um prompt malicioso podia apontar a conexão para um servidor do atacante e oapi_keydo operador viajava no headerAuthorization. - CVE-2026-18394 (31/jul) —
http_requesttinha um parâmetroproxiescontrolável pelo modelo. O allowlist checava a URL, mas o tráfego autenticado era roteado pelo proxy do atacante. - CVE-2026-18733 (3/ago, o mais grave) — o parâmetro
non_interactiveda ferramentashellpermitia que uma injeção de prompt indireta (via página, e-mail ou arquivo lido pelo agente) pulasse o gate de consentimento humano e executasse comandos arbitrários no host. A AWS classificou em CWE-1427, a fraqueza de "Improper Neutralization of Input Used for LLM Prompting". - CVE-2026-19111 (6/ago) — as ferramentas de memória (
mongodb_memory,elasticsearch_memory,mem0_memory) usavam um camponamespacecomo única chave de isolamento de tenant — e esse campo era controlado pelo LLM. Um usuário autenticado podia forjar um namespace e ler, alterar ou apagar memórias de outro tenant, ou injetar memórias falsas para envenenar o contexto futuro do agente.
A lição de arquitetura
A correção seguiu, nos quatro casos, o mesmo padrão: parâmetros sensíveis foram fixados ("bound") na construção da ferramenta e removidos do schema que o modelo enxerga. Não há mais api_key no argumento da tool, o proxy passou a vir do ambiente, o consentimento não pode mais ser desligado por flag e o tenant é derivado da identidade autenticada do chamador.
A mensagem central é uma frase que deveria virar mantra em qualquer plataforma de agentes: "O schema da ferramenta é a API, e o LLM é quem chama." Tudo o que o modelo pode setar é, em tese, um valor que um atacante pode controlar por injeção de prompt indireta. Parâmetro de segurança deixado na superfície LLM-controllable é um bucket de risco esperando um gatilho.
O que muda na sua arquitetura
- Segredo não entra no schema. Credenciais, tokens, proxies e endpoints vivem na camada de runtime (env, Secret Manager, config de infra).
- Consentimento não é opcional. Todo fluxo destrutivo tem um gate humano fixo, não desligável por parâmetro do modelo.
- Fronteira de tenant é derivada, não passada. Use a identidade do chamador (JWT/atestação), nunca um identificador que o LLM possa forjar.
- Trate o schema como código. Revisão de segurança de tool em PR, guardrails e checagem automatizada — igual validação de uma API pública.
Frameworks como o CSA Agent Identity Governance Framework (acesso Just-In-Time, atestação de workload) e levantamentos como o relatório de IA da FusionAuth (66% das organizações já sofreram vazamento de identidade em contexto de IA) mostram que a lacuna entre a governança proposta e a implementação real é grande. Este caso é a prova de que o problema não está no modelo — está no encanamento que o modelo controla.
Para quem quer colocar isso em prática, a metodologia de revisão de seguro de tool schema (com prompt reutilizável, guardrails, exemplos few-shot e harness de verificação) está disponível no marketplace — mas a lição é independente de ferramenta: menos parâmetros controláveis, mais responsabilidades fixadas na construção.
Fontes e verificação
Fatos confirmados via NVD: CVE-2026-15746 (publicado 15/07), CVE-2026-18394 (31/07), CVE-2026-18733 (03/08, HIGH, classificação CWE-1427) e CVE-2026-19111 (06/08, HIGH). Análise original reportada por Yahoo Tech / Forkast News (Heath Callahan, 22/08/2026).