CVE-2025-8088 este o vulnerabilitate de tip „path traversal” în WinRAR care afectează versiunile anterioare versiunii 7.13. Exploatarea acestei vulnerabilități permite unui fișier arhivat special creat să ocolească validarea numelor de fișiere și a căilor de acces în timpul extragerii arhivei și să determine scrierea de conținut controlat de atacator în anumite locații de pe un volum NTFS. În anumite condiții, această capacitate de scriere poate fi utilizată pentru executarea de cod de la distanță.
Bursierii din cadrul Programului de burse OPSWAT au realizat o analiză tehnică a vulnerabilității CVE-2025-8088. Concluziile acestei analize a mecanismelor RAR5 și NTFS (ADS) urmăresc fluxul de lucru al extragerii și calea de gestionare a ADS care duc la operațiuni de scriere nesigure și prezintă recomandări practice de atenuare și remediere destinate specialiștilor în securitate cibernetică și organizațiilor.

Introducere în CVE-2025-8088
WinRAR este unul dintre cele mai utilizate programe de arhivare pe Windows. Acesta permite păstrarea și restaurarea metadatelor specifice sistemului de fișiere NTFS, precum ADS (Alternate Data Streams). Vulnerabilitatea CVE-2025-8088 este prezentă în logica de gestionare a fluxurilor ADS a anumitor versiuni WinRAR. În versiunile vulnerabile, o arhivă rău intenționată poate modifica identificatorul fluxului utilizat în timpul extragerii, iar normalizarea și validarea necorespunzătoare a căilor de acces în cadrul procesului de creare a fluxurilor ADS permit traversarea directorului.
CVE-2025-8088 este considerată o vulnerabilitate cu grad ridicat de gravitate, având un scor de bază CVSS v4.0 de 8,4 (Ridicat), ceea ce reflectă potențialul unui impact semnificativ asupra securității în cazul în care un utilizator extrage un fișier arhivat special creat folosind o versiune vulnerabilă a programului WinRAR.

Context tehnic
Fluxuri de date alternative NTFS
NTFS (New Technology File System) este sistemul de fișiere implicit pentru versiunile moderne de Windows. În comparație cu sistemele de fișiere bazate pe FAT, NTFS oferă funcționalități avansate, printre care liste de control al accesului (ACL), criptare EFS, compresie, legături fizice, puncte de reanalizare (juncțiuni și legături simbolice) și ADS.
ADS este o funcție NTFS care permite ca un singur fișier sau director să conțină mai multe fluxuri independente de date. Conținutul principal, vizibil pentru utilizator, este stocat în fluxul implicit fără nume, reprezentat de obicei ca ::$DATA, în timp ce fluxurile suplimentare cu nume pot fi accesate folosind sintaxa:
numele_fișierului.ext:numele_fluxului
Aceste fluxuri denumite nu sunt, de obicei, vizibile în vizualizările standard ale Windows Explorer, dar sunt pe deplin acceptate de sistemul de fișiere și pot fi enumerate folosind instrumentele compatibile. De exemplu,comanda „dir/R” poate afișa fluxurile alternative.
WinRAR acceptă extragerea elementelor din arhive care includ sintaxa ADS. Atunci când o arhivă conține astfel de elemente, WinRAR scrie conținutul corespunzător în fluxul alternativ al fișierului de destinație în timpul extragerii.

Înțelegerea structurii fișierelor RAR5
Arhivele RAR5 sunt stocate sub forma unei secvențe de blocuri. Fiecare bloc începe cu un antet care conține informații despre tipul și dimensiunea blocului. Acesta poate include, opțional, o zonă suplimentară de metadate și o zonă de date formată din octeți de conținut, cum ar fi conținutul comprimat.
Bloc = Antet + (zonă suplimentară opțională) + (zonă de date opțională)
RAR5 utilizează mai multe tipuri de blocuri. Tipurile de blocuri relevante în CVE sunt:
- Antet de fișier (tip 2): descrie o intrare de fișier din arhivă (nume/cale, atribute, marcaje temporale, parametri de compresie) și este urmat de datele propriu-zise ale fișierului
- Antet de serviciu (tip 3): antete suplimentare opționale care stochează metadate suplimentare asociate arhivei sau unei intrări de fișier specifice, cum ar fi ADS
În sistemul de fișiere NTFS, ADS-urile sunt reprezentate de un antet de serviciu (tip 3), denumit STM. Zona de date a antetului de serviciu conține octeții fluxului ADS corespunzători intrării fișierului de bază.
Pe scurt:

Analiză tehnică (CVE-2025-8088)
Fluxul de lucru pentru extragerea fișierelor RAR5
WinRAR procesează arhivele RAR5 ca o secvență de blocuri. În timpul extragerii, programul parcurge aceste blocuri, analizează antetul fiecărui bloc și verifică integritatea antetului folosind codul CRC32 încorporat înainte de a continua. După ce o intrare de fișier este procesată, WinRAR decomprimă și scrie conținutul fișierului de bază pe disc, apoi determină dacă trebuie aplicate metadate suplimentare legate de NTFS prin intermediul înregistrărilor de serviciu asociate. Când este prezent un înregistrare ADS (Alternate Data Stream), cum ar fi o intrare de serviciu STM, WinRAR intră pe calea de gestionare ADS, combină calea fișierului de bază cu numele fluxului pentru a forma ținta ADS și creează fluxul.

În cazul vulnerabilității CVE-2025-8088, cauza principală este faptul că procesul de creare a fluxurilor ADS apelează funcția API Windows API () utilizând o cale derivată din metadatele controlate de arhivă, ceea ce face ca procesul de construire/validare a căii ADS să fie insuficient pentru a împiedica traversarea.
Identificarea traseului codului ADS („STM”)
Cercetătorii noștri au efectuat o serie de analize statice și dinamice într-un mediu de laborator controlat, utilizând WinRAR 7.12. Aceștia au identificat logica legată de ADS prin căutarea markerului de serviciu „STM” în fișierul binar și au confirmat apoi calea codului din partea de extragere în timpul rulării.

Prin plasarea unui punct de întrerupere la referința „STM” întâlnită în timpul extragerii unei arhive care conține date ADS, punctul de întrerupere a fost activat în mod constant, confirmând faptul că această cale de execuție este invocată în cadrul fluxului normal de lucru de extragere.

La atingerea punctului de întrerupere, stiva de apeluri a depanatorului a fost utilizată pentru a reconstitui secvența funcțiilor invocate după acțiunea „Extract” din interfața WinRAR, stabilind un punct de referință clar pentru procesarea în bloc a etapelor ulterioare și pentru calea de execuție a ADS.

Analiza antetului și validarea CRC32
WinRAR procesează fiecare bloc RAR5 citind antetul blocului, validând câmpurile de integritate și redirecționând către un handler specific tipului de bloc. Punctul de intrare pentru procesarea blocurilor și logica de analiză a antetului asociată sunt prezentate în figurile 6-10, unde WinRAR setează indicatorul de fișier la poziția curentă a blocului, citește octeții inițiali ai antetului, care includ tipul și dimensiunea antetului, și validează integritatea antetului folosind CRC32 înainte de a continua.
După validarea cu succes, acesta analizează câmpurile suplimentare din antet, precum indicatorii, dimensiunea după decompresie, metoda de compresie și sumele de control opționale. Apoi, procesează corpul blocului.



În timpul procesului de inginerie inversă, s-a observat că rutina CRC32 se comportă în conformitate cu o implementare standard CRC32 de tip zlib. Practic, această verificare CRC32 funcționează ca un filtru de integritate. Dacă câmpurile antetului sunt modificate, CRC32-ul încorporat trebuie actualizat pentru a se asigura că WinRAR acceptă antetul și continuă procesarea.

După validarea antetului CRC32, analizatorul continuă prin extragerea celorlalte informații din antet, precum dimensiunea fișierului decomprimat, metoda de compresie și alte atribute.

După finalizarea analizării și validării antetului, WinRAR procesează corpul blocului în funcție de tipul antetului analizat și de indicatori.

În cazul vulnerabilității CVE-2025-8088, validarea integrității antetului are loc înainte ca WinRAR să transmită datele către modulul de gestionare a blocurilor de servicii care procesează înregistrările ADS.
Crearea de anunțuri publicitare prin intermediul blocului de servicii („STM”)
Calea de procesare ADS este activată atunci când WinRAR întâlnește un bloc de serviciu. Blocurile de serviciu utilizează valoarea de tip bloc 3. Atunci când este detectat un bloc de serviciu, WinRAR îl transmite către un handler pentru antetul de serviciu.

În cadrul modulului de gestionare a serviciilor, WinRAR verifică numele serviciului. Atunci când numele serviciului corespunde cu „STM”, înregistrarea este tratată ca o sarcină utilă ADS, iar implementarea trece la o rutină de creare ADS.

WinRAR preia apoi numele fluxului din înregistrarea serviciului și îl combină cu calea de bază a fișierului pentru a construi ținta ADS finală. În versiunile anterioare versiunii 7.13, analiza arată că numele fluxului nu este suficient de curățat, ceea ce permite secvențelor de traversare să influențeze rezolvarea căii țintă rezultate.


După crearea țintei, WinRAR generează fluxul prin intermediul unei rutine auxiliare care apelează API CreateFileW al Windows, apoi scrie octeții ADS folosind WriteFile. Dacă calea rezultată se află în afara directorului de extragere selectat de utilizator, WinRAR va crea fluxul/fișierul de destinație și îl va umple cu conținut controlat de atacator.




Pe scurt, fluxul de lucru pentru extragerea ADS prezintă două vulnerabilități de securitate. În primul rând, numele fluxului ADS nu este suficient de curățat, ceea ce permite secvențelor de traversare să influențeze calea țintă rezultată. În al doilea rând, WinRAR creează fluxul ADS prin apelarea funcției CreateFileW() cu o cale derivată din metadatele controlate de arhivă.
Împreună, aceste condiții permit unei arhive special create să redirecționeze destinația funcției CreateFileW() în afara directorului de extragere prevăzut și să scrie conținut controlat de atacator într-o locație influențată de acesta. Dacă destinația este un director relevant pentru persistență (de exemplu, folderul „Startup” al utilizatorului), această operațiune de scriere poate permite executarea de cod ulterior la următoarea autentificare sau repornire a sistemului, în funcție de tipul de încărcătură utilă și de configurația sistemului.
Scenariu de atac
Vulnerabilitatea CVE-2025-8088 poate fi exploatată în practică în situațiile în care un atacator determină un utilizator să extragă o arhivă RAR special creată folosind o versiune vulnerabilă a programului WinRAR. Un vector tipic de atac este ingineria socială, cum ar fi phishingul, care determină victima să aibă încredere într-o arhivă rău intenționată și să inițieze extragerea acesteia într-un sistem critic.
Arhiva conține o înregistrare de serviciu ADS („STM”). Numele fluxului său este construit astfel încât să introducă o semantică de traversare. În timpul extragerii pe NTFS, WinRAR procesează înregistrarea ADS și deduce calea fluxului de destinație din metadatele controlate de arhivă. Deoarece această construcție a căii ADS nu este suficient de bine definită, destinația determinată poate să se afle în afara directorului de extragere selectat de utilizator, inclusiv în locații critice precum folderul de pornire al utilizatorului.

Demonstrație de concept
Pentru a demonstra vulnerabilitatea CVE-2025-8088, bursierii noștri au pregătit un fișier arhivă RAR special creat, care conține o înregistrare de serviciu ADS („STM”) cu câmpuri controlate de atacator. Această arhivă este structurată cu un nume de flux ADS care include secvențe de traversare. Această structură influențează locația țintă finală în timpul gestionării ADS, inclusiv calea transmisă către CreateFileW() atunci când este creat fluxul. Pentru a se asigura că WinRAR acceptă metadatele modificate și ajunge la calea de procesare ADS, valorile CRC32 ale antetului relevante sunt recalculate, astfel încât arhiva să treacă de validarea integrității antetului.

Atunci când o versiune vulnerabilă a WinRAR intră în rutina de procesare ADS în timpul extragerii arhivei modificat în mod special, aceasta scrie conținutul controlat de atacator în destinația preselectată, în loc de directorul de extragere selectat de utilizator. După extragere, executarea încărcăturii utile depinde de formatul acesteia și de modul de execuție al destinației preselectate. De exemplu, locațiile care pot executa conținutul la următoarea autentificare sau repornire.

Remediere
Riscul asociat vulnerabilității CVE-2025-8088 poate fi redus prin actualizarea WinRAR la o versiune remediată (7.13 sau o versiune ulterioară) pe toate terminalele gestionate. În cazul în care actualizarea nu poate fi efectuată în timp util, trebuie luate în considerare măsuri compensatorii, cum ar fi:
- Limitarea sau dezactivarea păstrării ADS în instrumentele de arhivare atunci când nu este necesară
- Limitarea extragerii arhivelor nesigure la medii izolate
- Aplicarea principiului „privilegiilor minime” (evitați rularea instrumentelor de extragere cu drepturi ridicate)
- Monitorizarea directoarelor critice, cum ar fi cele de pornire, pentru a detecta operațiuni de scriere neașteptate provenite din fluxurile de lucru de extragere a arhivelor
Pentru vulnerability detection timpurie vulnerability detection remedierea rapidă a acestora, MetaDefender sprijină operațiunile de remediere urgentă prin identificarea dispozitivelor care rulează versiuni vulnerabile ale WinRAR și evidențierea actualizărilor necesare. Capacitățile sale solide de gestionare a vulnerabilităților și a patch-urilor, care acoperă peste 1100 de aplicații, identifică în mod proactiv terminalele care rulează sisteme de operare și aplicații terțe neactualizate sau cu patch-uri lipsă și oferă soluții de remediere recomandate.
Vulnerability Management permite administratorilor să detecteze rapid expunerile, să prioritizeze remedierea acestora și să faciliteze trecerea la o versiune actualizată, reducând astfel riscul atacurilor de tip „write-to-archive”, precum CVE-2025-8088, precum și al altor amenințări similare la adresa terminalelor.

