Illustrazione tecnica astratta su un campo blu navy scuro: un ampio confine traslucido racchiude una fila di piccoli pannelli server minimalisti; una singola freccia di richiesta senza etichetta entra nel confine da sinistra senza alcun token di credenziale accanto, e dove attraversa la linea del confine la freccia diventa ambra e poi si dirama in molte sottili linee ciano che raggiungono ogni pannello all'interno, incluso un piccolo cubo disegnato con un buco della serratura che rappresenta un caveau di credenziali. Sotto di essa, una seconda freccia della stessa dimensione è fermata al confine da una breve barra bianca piena. Non sono presenti testo, persone o loghi di organizzazioni. Il logo OrcaRouter è sovrapposto nell'angolo in basso a destra.
AI Safety Incidents

Loom for AWS ha concesso privilegi di super amministratore a ogni richiesta non autenticata — CVE-2026-103956

Autore

Gideon Frost

Data di pubblicazione

Ultimi modelli · 20Vedi tutti i modelli →
Benchmark: Artificial Analysis · aggiornato ogni giorno
Torna a tutti gli articoli

Il 2 ottobre 2026, AWS ha pubblicato il Security Bulletin 2026-124-AWS, divulgando CVE-2026-103956 in Loom for AWS, la piattaforma open source di AWS Labs per creare, distribuire e gestire agenti AI su Amazon Bedrock AgentCore Runtime. In un deployment in cui non era stato configurato alcun provider di identità, la dipendenza di autenticazione del backend assegnava un'identità super-admin fissa a ogni richiesta in entrata — comprese le richieste che non contenevano alcun header Authorization. Un client remoto in grado di raggiungere il backend poteva registrare server di strumenti, leggere le credenziali di integrazione archiviate e riscrivere le policy dei ruoli IAM associate ai ruoli degli agenti gestiti: pieno controllo amministrativo del piano di controllo degli agenti senza alcuna autenticazione. NVD assegna alla vulnerabilità un punteggio di 10,0, critico, sia secondo CVSS 3.1 sia secondo CVSS 4.0. Il merito della scoperta va a Kenneth Cox, nell'ambito di una divulgazione coordinata. L'avviso descrive ciò che la vulnerabilità consentirebbe; non descrive ciò che qualcuno ne ha fatto.

Cosa stava effettivamente facendo la dipendenza di autenticazione

Il difetto risiedeva nella dipendenza di autenticazione del backend. Secondo l'avviso GitHub GHSA-vgmj-998f-r8mp, il percorso di codice nella dipendenza di autenticazione del backend — la get_current_user funzione nel backend Loom — restituiva un'identità di amministratore hardcoded, un account super-admin nel gruppo g-admins-super, ogni volta che non esisteva alcun user pool di Amazon Cognito né alcun provider di identità esterno attivo. Non verificava se il chiamante avesse presentato un token. Non passava a un rifiuto. Restituiva comunque l'identità di amministratore.

Il bollettino AWS descrive la conseguenza allo stesso modo: il difetto consentiva a qualsiasi client di rete di ottenere piena autorità amministrativa sul piano di controllo degli agenti. CVE-2026-103956 è mappato a CWE-306 (autenticazione mancante per una funzione critica) e CWE-1188 (inizializzazione predefinita non sicura di una risorsa). Il vettore CVSS 3.1 di NVD è AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — raggiungibile via rete, bassa complessità, nessun privilegio, nessuna interazione da parte dell'utente, ambito modificato, impatto completo su riservatezza, integrità e disponibilità.

L'inquadramento importante, e la parte che spiega perché un CVSS 10.0 sia finito su un piccolo progetto open source, è che un deployment senza IdP non è esotico. Una nuova installazione di Loom che non ha ancora Cognito collegato si trova esattamente in quello stato, e lo stesso vale per un deployment la cui configurazione del provider di identità non è mai stata impostata o ha smesso di risolversi. L'avviso considera questa una condizione comune anziché una configurazione errata che l'operatore avrebbe dovuto provocare.

A cosa potrebbe accedere un client non autenticato

• Registrazioni degli agenti e server di strumenti: il client potrebbe registrare o modificare i server di strumenti che un agente è autorizzato a chiamare, il che in un'architettura di chiamata di strumenti è la differenza tra un agente che legge un ticket e un agente che esegue qualcosa.

• Credenziali di integrazione archiviate: la piattaforma archivia le credenziali per i sistemi esterni a cui si connettono i suoi agenti e server di strumenti, e il bollettino afferma che erano leggibili.

• Policy dei ruoli IAM per i ruoli gestiti degli agenti: l'avviso descrive la riscrittura delle policy dei ruoli IAM associate ai ruoli che Loom gestisce per i suoi agenti, ovvero il passaggio che converte il controllo del livello di orchestrazione nel controllo di ciò che gli agenti possono fare all'interno dell'account AWS.

• Tutto il resto che la piattaforma gestisce: agenti, memorie, autorizzatore e configurazione di sicurezza, impostazioni — e l'invocazione di qualsiasi agente che il deployment esegue.

Quei quattro elementi sono la lista dell'avviso stesso di ciò a cui arriva l'accesso amministrativo completo, non una ricostruzione. Non si afferma che alcuno sfruttamento abbia utilizzato nessuno di essi.

Stabilito, e non stabilito

Confermato.La vulnerabilità esisteva ed è documentata in fonti primarie concordate: il Security Bulletin 2026-124-AWS di AWS del 2 ottobre 2026, l'advisory GitHub GHSA-vgmj-998f-r8mp pubblicato lo stesso giorno e il record CVE-2026-103956 di NVD. Le versioni interessate (precedenti alla 1.6.1), i punteggi CVSS, le mappature CWE, la versione correttiva e il credito sono coerenti tra loro. Il record d'archivio relativo a questo incidente è classificato con livello di affidabilità A, non contestato, e riporta real_harm come false.

I campi del record stesso collocano la divulgazione al 2 ottobre 2026, con precisione giornaliera, e descrivono una dichiarazione pubblica di proof-of-concept come non verificata; né il bollettino né l'avviso contengono prove di un attacco. Il record pubblico di NVD per CVE-2026-103956 elenca il catalogo delle vulnerabilità note come sfruttate di CISA come vuoto per questa CVE, e il record d'archivio riporta real_harm come false. Quindi: una vulnerabilità che un client di rete non autenticato potrebbe sfruttare, senza prove nelle fonti che qualcuno lo abbia fatto.

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.

Vale anche la pena di distinguere. Il CVSS 10.0 misura ciò che la vulnerabilità permetterebbe, non ciò che ha fatto. Un 10.0 senza sfruttamento e senza danni documentati è un quasi-incidente, e l'archivio lo classifica come tale.

La correzione, e l'intervallo di due mesi prima che le fosse dato un nome

AWS ha risolto il problema in Loom 1.6.1, rilasciato il 4 agosto 2026. Questa data è importante: il rilascio è avvenuto circa due mesi prima del bollettino e il numero CVE esisteva pubblicamente. Le note di rilascio della v1.6.1 descrivono la modifica senza nominare una CVE — ora il bypass di autenticazione richiede un opt-in esplicito più un client loopback e, in caso contrario, fallisce in modo sicuro con un 401 — quindi la gravità della falla e la sua designazione erano visibili solo agli utenti di Loom che tenevano traccia dei tracker, non a chi leggeva soltanto le note di rilascio. La stessa release ha aggiunto il rafforzamento SSRF per le richieste di discovery 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.

Per le distribuzioni già esposte, la guida pre-aggiornamento di AWS è di avere un pool di utenti Amazon Cognito o un provider di identità esterno attivo completamente configurato prima che il backend sia raggiungibile oltre il loopback, per confermare LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV non sia impostata al di fuori dello sviluppo locale, e di limitare nel frattempo l'accesso di rete o del gruppo di sicurezza al backend. Il bollettino è esplicito sul fatto che la restrizione di rete riduce la probabilità di accessi indesiderati ma non risolve il problema senza l'aggiornamento, e che anche i fork e il codice derivato necessitano di patch.

Stesso bollettino, difetti diversi

Il riepilogo del record fa notare che 2026-124-AWS non riguarda solo questa CVE. Altri due problemi di Loom sono stati divulgati lo stesso giorno e corretti in Loom 1.7.0: CVE-2026-103957, un SSRF nella gestione del rilevamento OAuth2 che poteva inviare segreti client OAuth2 o il token di accesso di un altro utente a un endpoint controllato dall'attaccante (CVSS 3.1 6.2, CVSS 4.0 8.2), e CVE-2026-103958, un SSRF nella gestione delle connessioni ai server degli strumenti e agli agenti remoti che poteva raggiungere indirizzi interni arbitrari, incluso l'endpoint di erogazione delle credenziali del container, e leggere le risposte (CVSS 3.1 7.6, CVSS 4.0 8.3). Entrambi richiedevano un utente autenticato in possesso dello scope mcp:write o a2a:write. Il bollettino copre anche CVE-2026-104019, un'iniezione di comandi del sistema operativo nello script di convalida dell'avvio di Studio Space usato da Amazon SageMaker Unified Studio, con punteggio 9.0 critico secondo CVSS 3.1, che AWS afferma di aver corretto lato server con una modifica di sanificazione globale applicata al successivo riavvio di Space.

Dopo l'aggiornamento, AWS chiede agli operatori di ruotare i secret client OAuth2 per le integrazioni MCP e A2A, revocare e riemettere i token che erano attivi durante la finestra interessata e — se sono state raggiunte le credenziali del ruolo del container — ruotare le credenziali di sessione del ruolo IAM ed esaminare CloudTrail.

Perché questo record è nell'archivio

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.

CVE-2026-103956 è registrata come vulnerabilità, non come incidente: trovata, non necessariamente sfruttata, INFRA e CRED, GLOBAL, gravità alta, confidenza alta. Il suo valore nell'insieme di record è quello di caso limite per l'intera categoria dei piani di controllo degli agenti. Il compito di Loom è custodire le identità, le registrazioni dei tool server insieme alle loro credenziali di integrazione, e le policy IAM che decidono a cosa gli agenti possono accedere — lo strato che collega una piattaforma di agenti all'account cloud in cui risiede. Un controllo mancante in quello strato non degrada un agente; trasferisce il patrimonio. Un record gemello nell'archivio, la divulgazione AgentCorruption dell'8 ottobre 2026 contro Amazon Bedrock AgentCore, descrive lo stesso strato raggiunto per una strada diversa, una catena SSRF da un agente esposto pubblicamente.

L'archivio elenca ogni incidente documentato che coinvolge un agente e che esso contiene, ciascuno con le proprie fonti, il livello di gravità, il grado di attendibilità e l'indicatore di contestazione, accanto a questo. Questo articolo riguarda un singolo record in quell'insieme, e il record è il luogo in cui risiede la classificazione completa campo per campo.

Questo è un singolo record, ricercato e segnalato da altri e qui citato a loro. Il livello proprio di Loom — identità, registrazioni dei server degli strumenti e le policy IAM che decidono a cosa gli agenti possono accedere — è il livello che anche le voci sorelle in l'archivio degli incidenti IA raggiungono, e ciascuno di quei record porta con sé le proprie fonti, la gravità, il grado di confidenza e il flag di contestazione.