Ilustração técnica abstrata sobre um fundo azul-marinho escuro: uma ampla fronteira translúcida delimita uma fileira de pequenos painéis de servidor minimalistas; uma única seta de solicitação sem rótulo entra na fronteira pela esquerda, sem qualquer token de credencial ao lado dela, e, no ponto em que cruza a linha da fronteira, a seta torna-se âmbar e depois ramifica-se em muitas linhas finas ciano que alcançam todos os painéis no interior, incluindo um pequeno cubo desenhado com uma fechadura que representa um cofre de credenciais. Abaixo, uma segunda seta do mesmo tamanho é detida na fronteira por uma curta barra branca sólida. Não aparecem textos, pessoas nem logótipos de organizações. O logótipo do OrcaRouter está composto no canto inferior direito.
AI Safety Incidents

Loom for AWS concedeu super-admin a toda requisição não autenticada — CVE-2026-103956

Autor

Gideon Frost

Data de publicação

Modelos mais recentes · 20Ver todos os modelos →
Benchmarks: Artificial Analysis · atualizado diariamente
Voltar para todas as publicações

Em 2 de outubro de 2026, a AWS publicou o Boletim de Segurança 2026-124-AWS, divulgando CVE-2026-103956 no Loom for AWS, a plataforma de código aberto do AWS Labs para criar, implantar e gerenciar agentes de IA no Amazon Bedrock AgentCore Runtime. Em uma implantação em que nenhum provedor de identidade havia sido configurado, a dependência de autenticação do backend atribuía uma identidade fixa de superadministrador a todas as solicitações recebidas — incluindo solicitações que não traziam nenhum cabeçalho Authorization. Um cliente remoto capaz de alcançar o backend podia registrar servidores de ferramentas, ler credenciais de integração armazenadas e reescrever as políticas de função do IAM anexadas às funções de agente gerenciadas: controle administrativo total do plano de controle do agente sem nenhuma autenticação. A NVD atribui à falha a pontuação 10,0, crítica, tanto no CVSS 3.1 quanto no CVSS 4.0. O crédito pela descoberta foi atribuído a Kenneth Cox, que atuou por meio de divulgação coordenada. O aviso descreve o que a falha permitiria; não descreve o que alguém fez com ela.

O que a dependência de autenticação estava realmente fazendo

O defeito estava na dependência de autenticação do backend. De acordo com o aviso do GitHub GHSA-vgmj-998f-r8mp, o caminho de código na dependência de autenticação do backend — a função get_current_user no backend Loom — retornava uma identidade de administrador fixa no código, uma conta de superadministrador no g-admins-super grupo, sempre que não existisse nenhum pool de usuários do Amazon Cognito e nenhum provedor de identidade externo ativo. Ele não verificava se o chamador havia apresentado um token. Ele não passava para uma rejeição. Ele retornava a identidade de administrador mesmo assim.

O boletim da AWS descreve a consequência da mesma forma: a falha permitia que qualquer cliente de rede obtivesse autoridade administrativa total sobre o plano de controle do agente. O CVE-2026-103956 está mapeado para CWE-306 (autenticação ausente para uma função crítica) e CWE-1188 (inicialização padrão insegura de um recurso). O vetor CVSS 3.1 do NVD é AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — alcançável pela rede, baixa complexidade, sem privilégios, sem interação do usuário, escopo alterado, impacto total na confidencialidade, integridade e disponibilidade.

O enquadramento importante, e a parte que explica por que um CVSS 10.0 foi atribuído a um pequeno projeto de código aberto, é que uma implantação sem IdP não é exótica. Uma instalação nova do Loom que ainda não teve o Cognito configurado está exatamente nesse estado, e o mesmo vale para uma implantação cuja configuração do provedor de identidade nunca foi definida ou deixou de ser resolvida. O aviso trata isso como uma condição comum, e não como uma má configuração que o operador tivesse de ter provocado.

O que um cliente não autenticado poderia alcançar

• Registos de agentes e servidores de ferramentas: o cliente poderia registar ou alterar os servidores de ferramentas que um agente tem permissão para chamar, o que, numa arquitetura de chamada de ferramentas, é a diferença entre um agente que lê um ticket e um agente que executa algo.

• Credenciais de integração armazenadas: a plataforma armazena credenciais para os sistemas externos aos quais seus agentes e servidores de ferramentas se conectam, e o boletim afirma que essas credenciais estavam legíveis.

• Políticas de função do IAM em funções de agente gerenciadas: o aviso descreve a reescrita das políticas de função do IAM anexadas às funções que a Loom gerencia para seus agentes, que é a etapa que converte o controle da camada de orquestração em controle do que os agentes podem fazer dentro da conta da AWS.

• Tudo o resto que a plataforma gerencia: agentes, memórias, autorizador e configuração de segurança, configurações — e invocar qualquer agente que a implantação executa.

Esses quatro itens são a própria lista do aviso sobre o que o acesso administrativo total alcança, não uma reconstrução. Não se afirma que qualquer exploração tenha usado algum deles.

Estabelecido, e não estabelecido

Confirmado. A vulnerabilidade existia e está documentada em fontes primárias acordadas: o Boletim de Segurança da AWS 2026-124-AWS, de 2 de outubro de 2026, a recomendação do GitHub GHSA-vgmj-998f-r8mp publicada no mesmo dia e o registro CVE-2026-103956 do NVD. As versões afetadas (anteriores à 1.6.1), as pontuações CVSS, os mapeamentos CWE, a versão de correção e o crédito são consistentes entre eles. O registro arquivado deste incidente tem grau de confiança A, não é contestado e traz real_harm como false.

Os próprios campos do registro situam a divulgação em 2 de outubro de 2026, com precisão de dia, e descrevem uma alegação pública de prova de conceito como não verificada; nem o boletim nem o aviso trazem evidência de um ataque. O registro público do NVD para CVE-2026-103956 lista o catálogo de exploração conhecida da CISA como vazio para esta CVE, e o registro de arquivo traz real_harm como false. Portanto: uma falha que um cliente de rede não autenticado poderia usar, sem evidência nas fontes de que alguém a tenha usado.

HTML card titled 'What the record establishes — and what it does not', kicked 'Record 2026-10-02-loom-aws-agent-control-plane-cve-2026-103956' and subtitled with the source list: AWS Security Bulletin 2026-124-AWS, GHSA-vgmj-998f-r8mp and the NVD record, all published 2 October 2026, with the archive classification confidence A, not disputed, real harm recorded as false. Two columns run side by side. The left column, headed 'Established' in cyan, lists six items: CVSS 10.0 critical under both CVSS 3.1 (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) and CVSS 4.0; CWE-306 and CWE-1188 — missing authentication for a critical function and insecure default initialization of a resource; affected versions before 1.6.1, where the auth dependency returned a fixed super-admin identity when no Cognito pool or external identity provider was configured; reach by any network client that could reach the backend, including registering tool servers, reading stored integration credentials and rewriting IAM role policies on managed agent roles; fixed in Loom 1.6.1, released 4 August 2026, about two months before the bulletin named the CVE; and credit to Kenneth Cox through coordinated disclosure. The right column, headed 'Not established' in amber, lists six items: no confirmed exploitation in the wild, with the AWS bulletin and the GitHub advisory both silent on attacks; a public proof-of-concept claim that is unverified in the record and could not be corroborated from the cited sources; no CISA KEV entry for CVE-2026-103956 in the NVD record; no statement about whether the fixed release is deployed across the installed base of forks and derivative code; no estimate of exposed deployments, since nothing in the cited sources says how many Loom instances ran IdP-less and network-reachable; and the note that severity measures what the flaw allowed, not what happened, with no harm recorded for this entry. A footer reads 'Facts as published by AWS (Security Bulletin 2026-124-AWS), the Loom maintainers (GHSA-vgmj-998f-r8mp) and NVD. Card rendered by OrcaRouter.' The OrcaRouter logo is composited in the bottom-right corner.

Também vale a pena separar. O CVSS 10.0 mede o que a falha permitiria, não o que ela fez. Um 10.0 sem exploração e sem dano registrado é um quase acidente, e o arquivo o classifica dessa forma.

A correção, e o intervalo de dois meses antes de ser nomeada

A AWS corrigiu o problema no Loom 1.6.1, lançado em 4 de agosto de 2026. Essa data importa: o lançamento ocorreu cerca de dois meses antes do boletim e o número CVE já existia publicamente. As notas de lançamento da v1.6.1 descrevem a mudança sem mencionar um CVE — o bypass de autenticação agora exige um opt-in explícito mais um cliente de loopback e, caso contrário, falha de forma segura com um 401 —, de modo que a gravidade da falha e sua designação só eram visíveis para usuários do Loom que acompanhavam os rastreadores, e não para quem lesse apenas as notas de lançamento. O mesmo lançamento adicionou reforço de SSRF para requisições de descoberta do OAuth.

HTML card titled 'Two months between the fix and the name', kicked 'CVE-2026-103956' and subtitled with the point: the code was patched in August, but nothing in the 1.6.1 release notes pointed a Loom operator at a CVSS 10.0 authentication bypass. Four dated rows run down a vertical timeline. 4 August 2026: Loom 1.6.1 ships the fix, and the release notes describe the change without naming a CVE, with the local-dev no-IdP bypass now requiring an explicit opt-in plus a loopback client and otherwise failing closed with a 401; the same release adds SSRF hardening for OAuth discovery. 4 August to 2 October 2026: roughly two months of unstated severity, with the patch public and the defect gone but the CVE number and the 10.0 score not yet existing, so a Loom user reading release notes alone sees a security hardening rather than a critical advisory with a remediation deadline. 2 October 2026, 12:00 PM PDT: AWS Security Bulletin 2026-124-AWS is published, naming CVE-2026-103956 for Loom before 1.6.1 alongside CVE-2026-103957 and CVE-2026-103958, both fixed in 1.7.0, and CVE-2026-104019 in Amazon SageMaker Unified Studio. 2 October 2026: the GitHub advisory and the NVD record follow, with GHSA-vgmj-998f-r8mp published the same day and NVD publishing CVE-2026-103956 with CVSS 3.1 and CVSS 4.0 base scores of 10.0, critical. A footer reads 'Dates as published by the Loom 1.6.1 release notes, AWS Security Bulletin 2026-124-AWS, GHSA-vgmj-998f-r8mp and the NVD record. The cited sources do not state the release date of Loom 1.7.0. Card rendered by OrcaRouter.' The OrcaRouter logo is composited in the bottom-right corner.

Para implantações já expostas, a orientação pré-upgrade da AWS é ter um pool de usuários do Amazon Cognito ou um provedor de identidade externo ativo e totalmente configurado antes que o backend seja acessível além do loopback, para confirmar que LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV não está definida fora do desenvolvimento local, e restringir o acesso de rede ou de grupo de segurança ao backend enquanto isso. O boletim deixa explícito que a restrição de rede reduz a chance de acesso não intencional, mas não resolve o problema sem a atualização, e que forks e código derivado também precisam de correção.

Mesmo boletim, falhas diferentes

O resumo do registro observa que 2026-124-AWS não se refere apenas a este CVE. Mais dois problemas do Loom foram divulgados no mesmo dia e corrigidos no Loom 1.7.0: CVE-2026-103957, um SSRF no tratamento de descoberta do OAuth2 que poderia enviar segredos de cliente OAuth2 ou o token de acesso de outro usuário para um endpoint controlado pelo atacante (CVSS 3.1 6.2, CVSS 4.0 8.2), e CVE-2026-103958, um SSRF no tratamento de conexões de servidor de ferramentas e agente remoto que poderia alcançar endereços internos arbitrários, incluindo o endpoint de fornecimento de credenciais do contêiner, e ler as respostas (CVSS 3.1 7.6, CVSS 4.0 8.3). Ambos exigiam um usuário autenticado com o escopo mcp:write ou a2a:write. O boletim também aborda o CVE-2026-104019, uma injeção de comando do sistema operacional no script de validação de inicialização do Studio Space usado pelo Amazon SageMaker Unified Studio, pontuado como 9.0 crítico na CVSS 3.1, que a AWS diz ter corrigido no lado do servidor com uma alteração global de sanitização aplicada na próxima reinicialização do Space.

Após a atualização, a AWS solicita aos operadores que façam a rotação dos segredos de cliente OAuth2 para integrações MCP e A2A, revoguem e reemitam os tokens que estavam ativos durante a janela afetada e — se as credenciais da função de contêiner tiverem sido alcançadas — façam a rotação das credenciais de sessão da função do IAM e revisem o CloudTrail.

Por que este registro está no arquivo

Abstract technical illustration on a dark navy field: three stacked horizontal layers. The top layer is a loose cluster of small abstract agent glyphs. Thin filaments run down from them into the middle layer, a clearly bounded cyan-outlined slab containing three small icons — two overlapping identity discs, a rectangular socket representing a tool registration, and a padlock on a folded document representing a policy. Every filament passes through those three icons. A single thick bundle leaves the middle slab and fans out across the bottom layer, a wide plain of large rectangular blocks. On the right edge of the middle slab, a short section of its outline is drawn as a dashed amber line, marking a boundary that is not intact. No text, people or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

A CVE-2026-103956 está registrada como uma vulnerabilidade, não como um incidente: encontrada, não necessariamente explorada, INFRA e CRED, GLOBAL, severidade alta, confiança alta. Seu valor no conjunto de registros é como um caso-limite para toda a categoria de planos de controle de agentes. A função do Loom é manter as identidades, os registros dos servidores de ferramentas juntamente com suas credenciais de integração, e as políticas de IAM que decidem o que os agentes podem acessar — a camada que conecta uma plataforma de agentes à conta de nuvem na qual ela reside. Uma verificação ausente nessa camada não degrada um agente; ela transfere o patrimônio. Um registro irmão no arquivo, a divulgação do AgentCorruption de 8 de outubro de 2026 contra o Amazon Bedrock AgentCore, descreve a mesma camada sendo alcançada por um caminho diferente, uma cadeia de SSRF a partir de um agente exposto publicamente.

O arquivo lista todos os incidentes documentados de agentes que ele contém, cada um com suas próprias fontes, gravidade, grau de confiança e indicador de disputa, ao lado deste. Este artigo trata de um único registro desse conjunto, e é no registro que reside a classificação completa campo a campo.

Este é um registro, pesquisado e relatado por outros e citado aqui a eles. A própria camada do Loom — identidades, registros de servidores de ferramentas e as políticas do IAM que decidem o que os agentes podem tocar — é a camada que os registros irmãos no Arquivo de Incidentes de IA também alcançam, e cada um desses registros traz suas próprias fontes, gravidade, grau de confiança e sinalizador de disputa.