Toate articolele

Noutăți29 septembrie 20265 min de citit

Amazon Bedrock AgentCore: breșe care expun credențiale AWS

Două CVE în SDK-ul Python și o cale prin metadate cu un rol implicit prea larg: cum expuneau agenții AgentCore credențiale AWS și ce trebuie să faci.

Nor albastru deschis cu cadranul și mânerul unui seif, atins de fascicule de lumină pe un fundal digital întunecat

Între sfârșitul lui septembrie și începutul lui octombrie 2026, trei cercetări au arătat cum agenții construiți pe Amazon Bedrock AgentCore, serviciul AWS pentru rularea agenților de inteligență artificială, puteau preda unui atacator credențialele AWS ale rolului lor de execuție. Firul comun nu este o singură vulnerabilitate, ci combinația a trei elemente: un agent care poate rula comenzi sau genera trafic, credențiale accesibile din mediul în care rulează și permisiuni mai largi decât este necesar.

Ce s-a întâmplat

  • Două CVE în SDK-ul Python (BeyondTrust). Potrivit Infosecurity Magazine, care preia cercetarea publicată de BeyondTrust pe 28 septembrie, helperul Code Interpreter care instalează pachete Python transforma un nume de pachet construit special într-o comandă shell executată în sandbox. De acolo, cercetătorii au citit credențialele temporare ale rolului de execuție.
  • „AgentCorruption” (Zenity Labs). Potrivit CSO Online, care a primit raportul în avans, cercetătorii i-au cerut pur și simplu unui agent credențialele și le-au obținut. Dark Reading descrie vulnerabilitatea, acum corectată, ca pe o modalitate de a pune în pericol întregul mediu AWS al unei organizații pornind de la un singur chatbot.
  • AgentCore Harness (Unit 42 de la Palo Alto Networks). Pe 18 septembrie, Unit 42 a raportat că, în configurația implicită, instrumentul shell integrat, activ implicit și rulat ca root, ajunge la memoria în care credențialele gestionate de AgentCore Identity sunt rezolvate în text clar: printr-o injecție de prompt, un atacator îl poate face pe agent să le exfiltreze.

Detalii tehnice

CVE-2026-12530 afectează SDK-ul Python AgentCore de la versiunea 1.1.3 la 1.6.0: o listă incompletă de caractere interzise permitea ocolirea verificării numelui pachetului. AWS a corectat-o în 1.6.1 cu o regulă de validare mai strictă, dar BeyondTrust a ocolit-o și pe aceasta: CVE-2026-16796, pe care AWS o indică pentru toate versiunile anterioare lui 1.18.1, folosea sintaxa extras din pip pentru a strecura comenzi shell. Corecția este în 1.18.1. AWS le-a acordat ambelor 7,3 în CVSS 3.1 și 8,4 în CVSS 4.0.

Potrivit BeyondTrust, izolarea Firecracker a sesiunilor a rezistat: punctul slab era helperul din SDK. Erau necesare trei condiții: un input influențat de atacator care ajunge la install_packages(), o versiune vulnerabilă a SDK-ului și un Code Interpreter personalizat cu un rol de execuție atașat. Inputul poate proveni din nume de pachete furnizate de utilizatori, din conținut neverificat procesat de agent sau din fișiere de dependențe dintr-un depozit nesigur. În logurile AWS, avertizează BeyondTrust, activitatea atacatorului poate părea activitate legitimă a aplicației.

În lanțul descris de Zenity, agentul ajungea la serviciul de metadate al instanței (IMDS) și returna un set complet de credențiale STS temporare (access key ID, secret access key și session token), funcționale și de pe o mașină din afara AgentCore. Eliminarea instrumentului HTTP al agentului nu era suficientă: defectul de izolare era al platformei, iar rezultatul se repeta cu alte instrumente, inclusiv cu instrumentul shell integrat din Strands. Cu permisiuni de citire pe ECR, cercetătorii au descărcat imaginea agentului, cu codul și dependențele; deoarece AgentCore denumește fiecare depozit bedrock-agentcore-<nume_agent>, în câteva secunde au obținut codul tuturor agenților din regiune. Rolul implicit avea permisiuni de citire, scriere și ștergere pe diverse servicii AgentCore și AWS din regiune: invocarea altor agenți, citirea conversațiilor, otrăvirea memoriei pentru persistență, colectarea de credențiale și chei API, acțiuni distructive.

Încă din aprilie, Unit 42 semnalase că AgentCore Runtime folosea un serviciu de metadate al microVM-ului (MMDS) fără impunerea tokenului de sesiune: înainte de corecțiile AWS, o SSRF putea fi suficientă pentru extragerea credențialelor.

Corespondență orientativă MITRE ATT&CK, pe baza faptelor raportate: T1059 (Command and Scripting Interpreter), T1552.005 (Unsecured Credentials: Cloud Instance Metadata API), T1078.004 (Valid Accounts: Cloud Accounts).

Stadiul corecțiilor și poziții divergente

  • Pentru cele două CVE din SDK, corecția este versiunea 1.18.1 sau ulterioară.
  • Zenity a raportat problemele către AWS pe 25 decembrie 2025. Pe 14 februarie 2026, AWS a trecut AgentCore la doar IMDSv2, închizând vectorul inițial, dar pe 22 iunie permisiunile rolului implicit erau neschimbate. Potrivit Zenity, acestea au fost corectate între 22 iunie și 29 septembrie; pe 8 octombrie calea de atac nu mai era exploatabilă.
  • Raportul Unit 42 despre AgentCore Harness a fost închis de AWS ca „informativ”, în cadrul modelului de responsabilitate partajată.
  • AWS susține că cercetarea Zenity prezintă drept vulnerabilitate un comportament așteptat și documentat și recomandă acordarea către rolurile de execuție doar a permisiunilor de care au nevoie agenții.

Impactul pentru companiile europene și italiene

Cine folosește AgentCore pentru agenți destinați clienților sau angajaților este expus proporțional cu permisiunile rolului de execuție: credențialele furate nu rămân în sandbox. Dacă conversațiile sau cheile implicate privesc date personale, trebuie evaluată o încălcare a securității conform GDPR. Pentru entitățile NIS2, agenții IA din cloud intră în măsurile de la articolul 21: controlul accesului, securitatea lanțului de aprovizionare, gestionarea vulnerabilităților. Sursele sunt de acord într-un punct: izolarea ține de platformă, dar permisiunile sunt responsabilitatea clientului.

Ce trebuie să faci acum

  1. Actualizează SDK-ul Python AgentCore la 1.18.1 sau o versiune ulterioară în proiecte, pipeline-uri și imagini.
  2. Nu transmite către install_packages() nume de pachete nesigure sau generate de model, așa cum recomandă AWS.
  3. Înlocuiește rolul de execuție implicit cu un rol pentru fiecare agent, doar cu permisiunile necesare; niciun rol acolo unde codul nu are nevoie de servicii AWS.
  4. Revizuiește instrumentele integrate: dezactivează instrumentul shell din AgentCore Harness și instrumentele HTTP acolo unde nu sunt necesare și tratează-le pe cele rămase ca fiind cu risc ridicat.
  5. Limitează traficul de ieșire al agenților și nu pune secrete în imagini.
  6. Supraveghează activitatea: monitorizează Code Interpreter, stabilește un profil de referință al identității și instrumentelor fiecărui agent, ca anomaliile să iasă în evidență, și caută în logurile AWS utilizarea credențialelor rolurilor agenților în afara mediului lor obișnuit.

Ultima actualizare:

Ai întrebări?

Hai să vorbim despre nevoile companiei tale, fără obligații.

Contactează-ne

Articole similare