Abstracte technische illustratie op een donker marineblauw vlak: een brede doorschijnende grens omsluit een rij kleine minimalistische serverpanelen; een enkele ongelabelde verzoekpijl komt van links de grens binnen, zonder dat er een token met inloggegevens naast staat, en waar hij de grenslijn kruist, wordt de pijl amberkleurig en vertakt zich vervolgens in vele dunne cyaan lijnen die elk paneel binnenin bereiken, inclusief een kleine kubus met een sleutelgat erin, die een kluis voor inloggegevens voorstelt. Daaronder wordt een tweede pijl van hetzelfde formaat bij de grens tegengehouden door een korte, effen witte balk. Er verschijnen geen tekst, personen of organisatielogo's. Het OrcaRouter-logo is in de rechteronderhoek samengesteld.
AI Safety Incidents

Loom voor AWS gaf elk ongeauthenticeerd verzoek super-admin — CVE-2026-103956

Auteur

Gideon Frost

Publicatiedatum

Nieuwste modellen · 20Bekijk alle modellen →
Benchmarks: Artificial Analysis · dagelijks bijgewerkt
Terug naar alle berichten

Op 2 oktober 2026 publiceerde AWS Security Bulletin 2026-124-AWS, met de bekendmaking van CVE-2026-103956 in Loom for AWS, het open-sourceplatform van AWS Labs voor het bouwen, implementeren en beheren van AI-agenten op Amazon Bedrock AgentCore Runtime. In een deployment waarin geen identiteitsprovider was geconfigureerd, gaf de authenticatie-afhankelijkheid van de backend aan elk binnenkomend verzoek een vaste superadmin-identiteit — waaronder verzoeken die helemaal geen Authorization-header bevatten. Een externe client die de backend kon bereiken, kon toolservers registreren, opgeslagen integratiecredentials lezen en de IAM-rolbeleidsregels die aan beheerde agentrollen zijn gekoppeld herschrijven: volledige administratieve controle over het agent-controlplane zonder enige authenticatie. NVD kent de kwetsbaarheid een score van 10,0 toe: kritiek, onder zowel CVSS 3.1 als CVSS 4.0. De eer voor de vondst ging naar Kenneth Cox, die via gecoördineerde openbaarmaking te werk ging. De advisory beschrijft waartoe de kwetsbaarheid in staat zou stellen; er staat niet in wat iemand ermee heeft gedaan.

Wat de authenticatie-afhankelijkheid eigenlijk deed

Het defect zat in de auth-afhankelijkheid van de backend. Volgens de GitHub-advisory GHSA-vgmj-998f-r8mp retourneerde het codepad in de auth-afhankelijkheid van de backend — de get_current_user-functie in de Loom-backend — een hardgecodeerde beheerdersidentiteit, een superadmin-account in de g-admins-super-groep, telkens wanneer er geen Amazon Cognito-gebruikerspool en geen actieve externe identiteitsprovider bestonden. Het controleerde niet of de aanroeper een token had gepresenteerd. Het viel niet door naar een afwijzing. Het retourneerde toch de beheerdersidentiteit.

Het AWS-bulletin beschrijft de consequentie op dezelfde manier: de fout stelde elke netwerkclient in staat volledige administratieve bevoegdheid over het agent-controlelaag te verkrijgen. CVE-2026-103956 is toegewezen aan CWE-306 (ontbrekende authenticatie voor een kritieke functie) en CWE-1188 (onveilige standaardinitialisatie van een resource). De CVSS 3.1-vector van NVD is AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — netwerkbereikbaar, lage complexiteit, geen privileges, geen gebruikersinteractie, scope gewijzigd, volledige impact op vertrouwelijkheid, integriteit en beschikbaarheid.

De belangrijke framing, en het deel dat verklaart waarom een CVSS 10.0 terechtkwam bij een klein open-sourceproject, is dat een deployment zonder IdP niet exotisch is. Een verse Loom-installatie waarbij Cognito nog niet is aangesloten, verkeert precies in die toestand, en dat geldt ook voor een deployment waarvan de configuratie van de identity provider nooit is ingesteld of niet meer werd opgelost. Het advies behandelt dit als een gangbare situatie, niet als een verkeerde configuratie die de operator zelf in het leven heeft geroepen.

Wat een niet-geauthenticeerde client zou kunnen bereiken

• Agentregistraties en toolservers: de client kon de toolservers registreren of wijzigen die een agent mag aanroepen, wat in een tool-calling-architectuur het verschil is tussen een agent die een ticket leest en een agent die iets uitvoert.

• Opgeslagen inloggegevens voor integraties: het platform slaat inloggegevens op voor de externe systemen waarmee zijn agents en toolservers verbinding maken, en het bulletin vermeldt dat deze leesbaar waren.

• IAM-rolbeleid voor beheerde agentrollen: het adviesdocument beschrijft het herschrijven van de IAM-rolbeleidsregels die zijn gekoppeld aan de rollen die Loom voor zijn agents beheert, de stap die controle over de orchestratielaag omzet in controle over wat de agents binnen het AWS-account kunnen doen.

• Al het andere dat het platform beheert: agenten, geheugens, autorisatie- en beveiligingsconfiguratie, instellingen — en het aanroepen van elke agent die de deployment uitvoert.

Die vier punten zijn de eigen lijst van het advies van wat volledige administratieve toegang allemaal kan bereiken, geen reconstructie. Er wordt niet beweerd dat enige exploit een van deze heeft gebruikt.

Vastgesteld, en niet vastgesteld

Vastgesteld. De kwetsbaarheid bestond en is gedocumenteerd in overeengekomen primaire bronnen: AWS' Security Bulletin 2026-124-AWS van 2 oktober 2026, de GitHub-advisory GHSA-vgmj-998f-r8mp die dezelfde dag is gepubliceerd, en NVD's CVE-2026-103956-record. De getroffen versies (vóór 1.6.1), de CVSS-scores, de CWE-toewijzingen, de fixversie en de credit zijn onderling consistent. Het archiefrecord voor dit incident is beoordeeld met betrouwbaarheidsgraad A, niet betwist, en heeft real_harm als false.

De eigen velden van het record plaatsen de openbaarmaking op 2 oktober 2026, met dagprecisie, en beschrijven een publieke proof-of-conceptbewering als ongeverifieerd; noch het bulletin noch het advies bevat bewijs van een aanval. Het openbare record van NVD voor CVE-2026-103956 vermeldt de known-exploitedcatalogus van CISA als leeg voor deze CVE, en het archiefrecord bevat real_harm als false. Dus: een kwetsbaarheid die een ongeauthenticeerde netwerkclient zou kunnen gebruiken, zonder bewijs in de bronnen dat iemand dat heeft gedaan.

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.

Ook dit is het onderscheiden waard. De CVSS 10.0 meet wat de kwetsbaarheid zou toelaten, niet wat ze heeft gedaan. Een 10.0 zonder exploitatie en zonder geregistreerde schade is een near-miss, en het archief slaat het als zodanig op.

De oplossing, en het gat van twee maanden voordat het een naam kreeg

AWS heeft het probleem opgelost in Loom 1.6.1, uitgebracht op 4 augustus 2026. Die datum is belangrijk: de release verscheen ongeveer twee maanden vóór het bulletin en het CVE-nummer was al openbaar. De release-opmerkingen van v1.6.1 beschrijven de wijziging zonder een CVE te noemen — de auth-bypass vereist nu een expliciete opt-in plus een loopback-client, en faalt anders gesloten met een 401 — dus de ernst van de kwetsbaarheid en de aanduiding ervan waren alleen zichtbaar voor Loom-gebruikers die de trackers volgden, niet voor wie alleen de release-opmerkingen las. Dezelfde release voegde SSRF-hardening toe voor OAuth-discovery-fetches.

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.

Voor al blootgestelde implementaties is de richtlijn van AWS vóór de upgrade om een Amazon Cognito-gebruikerspool of een actieve externe identiteitsprovider volledig te configureren voordat de backend bereikbaar is buiten loopback, om te bevestigen dat LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV niet is ingesteld buiten lokale ontwikkeling, en om in de tussentijd netwerk- of beveiligingsgroeptoegang tot de backend te beperken. Het bulletin is expliciet dat netwerkbeperking de kans op onbedoelde toegang verkleint, maar het probleem niet oplost zonder de upgrade, en dat forks en afgeleide code ook gepatcht moeten worden.

Zelfde bulletin, andere gebreken

In de samenvatting van het record staat dat 2026-124-AWS niet alleen over deze CVE gaat. Er werden diezelfde dag nog twee Loom-problemen bekendgemaakt en opgelost in Loom 1.7.0: CVE-2026-103957, een SSRF in de afhandeling van OAuth2-discovery waarmee OAuth2-clientgeheimen of het access token van een andere gebruiker naar een door een aanvaller beheerst eindpunt konden worden gestuurd (CVSS 3.1 6.2, CVSS 4.0 8.2), en CVE-2026-103958, een SSRF in de afhandeling van verbindingen met toolservers en externe agents waarmee willekeurige interne adressen konden worden bereikt, waaronder het eindpunt van de container voor het verstrekken van inloggegevens, en de antwoorden konden worden gelezen (CVSS 3.1 7.6, CVSS 4.0 8.3). Voor beide was een geauthenticeerde gebruiker met de scope mcp:write of a2a:write nodig. Het bulletin behandelt ook CVE-2026-104019, een OS-commandinjectie in het opstartvalidatiescript van Studio Space dat wordt gebruikt door Amazon SageMaker Unified Studio, met een score van 9.0 (kritiek) onder CVSS 3.1, die AWS naar eigen zeggen server-side heeft verholpen met een wereldwijde sanerende wijziging die bij de volgende herstart van de Space wordt toegepast.

Na de upgrade vraagt AWS operators om OAuth2-clientgeheimen voor MCP- en A2A-integraties te roteren, tokens die actief waren tijdens het getroffen venster in te trekken en opnieuw uit te geven, en — als er toegang is verkregen tot de inloggegevens van de containerrol — de sessie-inloggegevens van de IAM-rol te roteren en CloudTrail na te kijken.

Waarom dit record in het archief staat

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 is geregistreerd als een kwetsbaarheid, niet als een incident: gevonden, niet noodzakelijkerwijs uitgebuit, INFRA en CRED, GLOBAL, hoge ernst, hoge mate van zekerheid. De waarde ervan in de recordset is die van een grensgeval voor de hele categorie van agent-controlplanes. De taak van Loom is om de identiteiten, de toolserverregistraties samen met hun integratiecredentials, en de IAM-beleidsregels die bepalen waartoe agents toegang mogen hebben, te beheren — de laag die een agentplatform verbindt met het cloudaccount waarin het zich bevindt. Een ontbrekende controle in die laag verzwakt een agent niet; ze draagt het volledige bezit over. Een zusterrecord in het archief, de AgentCorruption-openbaarmaking van 8 oktober 2026 tegen Amazon Bedrock AgentCore, beschrijft hoe dezelfde laag via een andere weg werd bereikt: een SSRF-keten vanaf één publiek toegankelijke agent.

Het archief vermeldt elk gedocumenteerd agentincident dat het bevat, elk met zijn eigen bronnen, ernst, betrouwbaarheidsgraad en betwiste vlag, naast dit exemplaar. Dit artikel gaat over één record in die set, en dat record is waar de volledige veld-voor-veldclassificatie zich bevindt.

Dit is één record, onderzocht en gerapporteerd door anderen en hier met verwijzing naar hen aangehaald. De eigen laag van Loom — identiteiten, registraties van tool-servers en het IAM-beleid dat bepaalt waar agents aan mogen komen — is de laag die de zustervermeldingen in het AI-incidentenarchief eveneens bereiken, en elk van die records draagt zijn eigen bronnen, ernstgraad, vertrouwensgraad en betwist-markering.