A CVE-2025-8088 egy útvonalátlépési sebezhetőség a WinRAR programban, amely a 7.13-as verziót megelőző verziókat érinti. A sebezhetőség kihasználásával egy speciálisan kialakított archívum képes megkerülni a fájlnév- és útvonal-ellenőrzést az archívum kibontása során, és a támadó által irányított tartalmat írhatja az NTFS-kötet meghatározott helyeire. Bizonyos feltételek mellett ez az írási képesség távoli kódfuttatásra is felhasználható.
Az OPSWAT ösztöndíjprogram ösztöndíjasai elvégezték a CVE-2025-8088 biztonsági rés technikai elemzését. A RAR5 és az NTFS (ADS) működési mechanizmusainak elemzése során nyert eredmények feltárják az adatkinyerési munkafolyamatot és az ADS-kezelési útvonalat, amelyek a nem biztonságos írási műveletekhez vezetnek, valamint összefoglalják a kiberbiztonsági szakemberek és szervezetek számára szóló gyakorlati kockázatcsökkentési és javítási útmutatásokat.

Bevezetés a CVE-2025-8088-hoz
A WinRAR az egyik leggyakrabban használt tömörítőprogram a Windows rendszeren. Támogatja az NTFS-specifikus metaadatok, például az ADS (Alternate Data Streams) megőrzését és visszaállítását. A CVE-2025-8088 biztonsági rés bizonyos WinRAR-verziók ADS-kezelési logikájában található. A sebezhető verziókban egy rosszindulatú archívum befolyásolhatja a kibontás során használt adatfolyam-azonosítót, és mivel az ADS-létrehozási folyamat során az elérési út normalizálása és érvényesítése nem megfelelő, ez lehetővé teszi a könyvtárátjárást.
A CVE-2025-8088 biztonsági rés súlyossági besorolása „magas”, CVSS v4.0 alapszintű pontszáma 8,4 (magas), ami azt jelzi, hogy mérhető biztonsági kockázatot jelenthet, ha egy felhasználó egy sebezhető WinRAR-verzióval kibont egy speciálisan kialakított archívumot.

Műszaki háttér
NTFS alternatív adatfolyamok
Az NTFS (New Technology File System) a Windows modern verzióinak alapértelmezett fájlrendszere. A FAT-alapú fájlrendszerekhez képest az NTFS olyan fejlett funkciókat támogat, mint az ACL-ek (hozzáférési vezérlőlisták), az EFS-titkosítás, a tömörítés, a kemény linkek, az újraértelmezési pontok (csatlakozási pontok és szimbolikus linkek) és az ADS.
Az ADS egy NTFS-funkció, amely lehetővé teszi, hogy egy fájl vagy könyvtár több egymástól független adatfolyamot tartalmazzon. Az elsődleges, a felhasználó számára látható tartalom a névtelen alapértelmezett adatfolyamban van tárolva, amelyet általában ::$DATA jelöléssel jelölnek, míg a további, megnevezett adatfolyamokhoz a következő szintaxissal lehet hozzáférni:
filename.ext:streamname
Ezek a névvel ellátott adatfolyamok általában nem láthatók a Windows Intéző szokásos nézetében, de a fájlrendszer teljes mértékben támogatja őket, és a megfelelő eszközökkel felsorolhatók. Példáula dir/Rparancssegítségével megjeleníthetők az alternatív adatfolyamok.
A WinRAR támogatja az ADS-szintaxist tartalmazó archívumelemek kibontását. Ha egy archívumban ilyen elemek találhatók, a WinRAR a kibontás során a megfelelő tartalmat a célfájl alternatív adatfolyamába írja.

A RAR5 fájlszerkezet megértése
A RAR5-típusú archívumok blokkok sorozataként vannak tárolva. Minden blokk egy fejléccel kezdődik, amely meghatározza a blokk típusát és méretét. Opcionálisan tartalmazhat egy kiegészítő metaadat-területet, valamint egy adat-területet, amely a hasznos adatokat, például a tömörített tartalmat tartalmazza.
Blokk = Fejléc + (opcionális kiegészítő terület) + (opcionális adattér)
A RAR5 többféle blokktípust használ. A CVE-ben szereplő releváns blokktípusok a következők:
- Fájlfejléc (2. típus): Az archívumban található fájlbejegyzést írja le (név/útvonal, attribútumok, időbélyegek, tömörítési paraméterek), amelyet a fájl tényleges adatai követnek
- Szolgáltatási fejléc (3. típus): Opcionális kiegészítő fejlécek, amelyek az archívumhoz vagy egy adott fájlbejegyzéshez kapcsolódó további metaadatokat tárolnak, például ADS-t
Az NTFS fájlrendszerben az ADS-eket egy STM néven ismert szolgáltatásfejléc (3. típus) jelöli. A szolgáltatásfejléc adatterülete tartalmazza az alapfájlbejegyzéshez tartozó ADS-adatfolyam bájtjait.
Egyszerűsítve:

Műszaki elemzés (CVE-2025-8088)
RAR5-fájlok kibontásának folyamata
A WinRAR a RAR5-archívumokat blokksorozatként kezeli. A kicsomagolás során végigfut ezeken a blokkokon, elemzi az egyes blokkfejléceket, és a beágyazott CRC32 segítségével ellenőrzi a fejlécek integritását, mielőtt továbbhaladna. Egy fájlbejegyzés feldolgozása után a WinRAR kicsomagolja és a lemezre írja az alapfájl tartalmát, majd eldönti, hogy a kapcsolódó szolgáltatási rekordok révén további NTFS-hez kapcsolódó metaadatokat kell-e alkalmazni. Ha van ADS (Alternate Data Stream) rekord, például STM szolgáltatási bejegyzés, a WinRAR belép az ADS-kezelési útvonalba, egyesíti az alapfájl útvonalát a stream nevével az ADS cél létrehozásához, majd létrehozza a streamet.

A CVE-2025-8088 esetében a probléma alapvető oka az, hogy az ADS-folyam létrehozása a Windows API () függvényét hívja meg az archívum által kezelt metaadatokból származtatott elérési út használatával, ami miatt az ADS-elérési út kialakítása és érvényesítése nem elegendő az elérési út átlépésének megakadályozásához.
Az ADS („STM”) kódútvonal azonosítása
Posztgraduális ösztöndíjasaink a WinRAR 7.12 szoftver segítségével statikus és dinamikus elemzéseket végeztek ellenőrzött laboratóriumi környezetben. A bináris fájlban az „STM” szolgáltatásjelzőt keresve azonosították az ADS-hez kapcsolódó logikát, majd futásidőben megerősítették a kinyerési oldali kódútvonalat.

Miután egy ADS-adatokat tartalmazó archívum kibontása során az „STM” hivatkozásra töréspontot állítottunk be, a töréspontot minden alkalommal elérte a program, ami igazolta, hogy ez a végrehajtási útvonal a szokásos kibontási munkafolyamat során is meghívásra kerül.

A megszakítási pont elérésekor a hibakereső hívási verem segítségével rekonstruáltuk a WinRAR felhasználói felületén az „Extract” művelet után meghívott függvények sorrendjét, ezzel egyértelmű kiindulási pontot teremtve a későbbi blokkfeldolgozáshoz és az ADS végrehajtási útvonalához.

Fejléc-elemzés és CRC32-ellenőrzés
A WinRAR az egyes RAR5-blokkokat úgy dolgozza fel, hogy beolvassa a blokkfejléceket, ellenőrzi az integritási mezőket, majd a blokktípusnak megfelelő feldolgozóhoz továbbítja azokat. A blokkfeldolgozás belépési pontját és a hozzá tartozó fejlécek elemzésének logikáját a 6–10. ábrák szemléltetik: a WinRAR az aktuális blokk eltolási pontjára állítja a fájlmutatót, beolvassa a kezdeti fejlécbájtokat – amelyek tartalmazzák a fejléc típusát és méretét –, majd a folytatás előtt CRC32 segítségével ellenőrzi a fejléc integritását.
A sikeres érvényesítés után a program feldolgozza a további fejlécmezőket, például a jelzőket, a kicsomagolt méretet, a tömörítési módszert és az opcionális ellenőrző összegeket. Ezután feldolgozza a blokk tartalmát.



A visszafejtés során megfigyelhető volt, hogy a CRC32-rutin viselkedése összhangban áll a szabványos, zlib-stílusú CRC32-megvalósítással. Gyakorlatilag ez a CRC32-ellenőrzés integritás-ellenőrzőként szolgál. Ha a fejlécmezőket módosítják, a beágyazott CRC32-értéket frissíteni kell ahhoz, hogy a WinRAR elfogadja a fejlécet és folytassa a feldolgozást.

A CRC32 fejléc ellenőrzése után az elemző folytatja a feldolgozást, és kibontja a fennmaradó fejlécadatokat, például a kibontott méretet, a tömörítési módszert és egyéb tulajdonságokat.

A fejléc elemzése és érvényesítése után a WinRAR az elemzett fejléc típusának és jelzőinek megfelelően dolgozza fel a blokk tartalmát.

A CVE-2025-8088 esetében a fejléc integritásának ellenőrzése még azelőtt megtörténik, hogy a WinRAR átadná az ADS-rekordokat feldolgozó Service blokk-kezelőnek.
Hirdetéskészítés a Service blokk („STM”) segítségével
Az ADS-feldolgozási útvonal akkor kerül meghívásra, amikor a WinRAR egy Service blokkra bukkan. A Service blokkok a 3-as blokktípus-értéket használják. Amikor a WinRAR egy Service blokkot észlel, azt egy service-header kezelőhöz továbbítja.

A szolgáltatáskezelőn belül a WinRAR ellenőrzi a szolgáltatás nevét. Ha a szolgáltatás neve megegyezik az „STM” karakterlánccal, a rendszer a rekordot ADS-adatcsomagként kezeli, és a program egy ADS-létrehozási rutinba vált át.

A WinRAR ezután lekérdezi a stream nevét a szolgáltatási rekordból, és ezt az alapfájl elérési útjával egyesíti a végleges ADS-cél létrehozásához. A 7.13-as verziót megelőző verziókban az elemzés azt mutatja, hogy a stream neve nem kerül kellőképpen tisztításra, ami lehetővé teszi, hogy a tranzitív szekvenciák befolyásolják a kapott célelérési út feloldását.


A cél létrehozása után a WinRAR egy segédrutin segítségével hozza létre az adatfolyamot, amely a Windows CreateFileW API hívja meg, majd a WriteFile függvény segítségével írja be az ADS-bájtokat. Ha a feloldott elérési út a felhasználó által kiválasztott kibontási könyvtáron kívül esik, a WinRAR létrehozza a céladatfolyamot/célfájlt, és azt a támadó által irányított tartalommal tölti meg.




Összefoglalva: az ADS-kivonási munkafolyamat két biztonsági szempontból releváns problémát tár fel. Először is, az ADS-adatfolyam neve nem kerül kellőképpen tisztításra, ami lehetővé teszi, hogy a karakterlánc-átlépési műveletek befolyásolják a kapott célútvonalat. Másodszor, a WinRAR az ADS-adatfolyamot úgy hozza létre, hogy a CreateFileW() függvényt az archívum által vezérelt metaadatokból származó útvonal megadásával hívja meg.
Ezek a feltételek együttesen lehetővé teszik, hogy egy speciálisan kialakított archívum a CreateFileW() parancs célját a tervezett kibontási könyvtáron kívülre irányítsa, és a támadó által ellenőrzött tartalmat egy általa befolyásolt helyre írja. Ha a cél egy perzisztenciával kapcsolatos könyvtár (például a felhasználó Startup mappája), ez az írási művelet – a hasznos teher típusától és a rendszerkonfigurációtól függően – lehetővé teheti a kód későbbi végrehajtását a következő bejelentkezéskor vagy újraindításkor.
Támadási forgatókönyv
A CVE-2025-8088 sebezhetőséget gyakorlatilag olyan esetekben lehet kihasználni, amikor a támadó ráveszi a felhasználót, hogy egy sebezhető WinRAR-verzióval kicsomagoljon egy speciálisan kialakított RAR-archívumot. A támadás tipikus terjesztési módja a szociális manipuláció, például az adathalászat, amelynek hatására az áldozat megbízik a rosszindulatú archívumban, és elindítja annak kicsomagolását egy kritikus rendszeren.
Az archívum tartalmaz egy ADS („STM”) szolgáltatási rekordot. A stream neve úgy van kialakítva, hogy átjárási szemantikát vezessen be. NTFS-rendszeren történő kibontáskor a WinRAR feldolgozza az ADS-rekordot, és az archívum által vezérelt metaadatokból levezeti a cél stream elérési útját. Mivel ez az ADS-útvonal kialakítása nem elég szigorúan korlátozott, a meghatározott célhely a felhasználó által kiválasztott kibontási könyvtáron kívülre eshet, beleértve olyan kritikus helyeket is, mint például a felhasználó indítási mappája.

Koncepció igazolása
A CVE-2025-8088 bizonyítására posztgraduális ösztöndíjasaink egy speciálisan kialakított RAR-archívumfájlt készítettek, amely egy támadó által ellenőrzött mezőket tartalmazó ADS („STM”) szolgáltatási rekordot tartalmaz. Az archívum felépítése olyan ADS-adatfolyam-nevet tartalmaz, amely átjárási szekvenciákat tartalmaz. Ez a felépítés befolyásolja a végső célhelyet az ADS-kezelés során, beleértve a CreateFileW()-nek átadott elérési utat is, amikor a stream létrehozásra kerül. Annak biztosítására, hogy a WinRAR elfogadja a módosított metaadatokat és elérje az ADS-feldolgozási elérési utat, a vonatkozó fejléc CRC32 értékei újraszámításra kerülnek, így az archívum átmegy a fejléc integritásának ellenőrzésén.

Ha egy sebezhető WinRAR-verzió a manipulált archívum kibontása során belép az ADS-feldolgozási rutinba, akkor a támadó által irányított tartalmat nem a felhasználó által kiválasztott kibontási könyvtárba, hanem az előre kiválasztott célhelyre írja. A kibontás után a hasznos teher végrehajtását annak formátuma és az előre kiválasztott célhely végrehajtási szabályai határozzák meg. Ilyen helyek lehetnek például azok, amelyek a következő bejelentkezéskor vagy újraindításkor hajthatják végre a tartalmat.

Helyreállítás
A CVE-2025-8088 biztonsági rés kockázata úgy csökkenthető, hogy a WinRAR szoftvert minden felügyelt végponton frissítik egy javított verzióra (7.13 vagy újabb). Ha az azonnali frissítés nem lehetséges, akkor pótló intézkedéseket kell fontolóra venni, például:
- Az ADS-megőrzés korlátozása vagy letiltása az archiváló eszközökben, ha az nem szükséges
- A megbízhatatlan archívumok kibontásának korlátozása elszigetelt környezetekre
- A legkisebb jogosultság elvének betartása (kerülje az adatkinyerő eszközök rendszergazdai jogosultsággal történő futtatását)
- A kritikus könyvtárak – például az indítási könyvtárak – figyelemmel kísérése az archívum-kicsomagolási munkafolyamatokból származó váratlan írási műveletek észlelése érdekében
vulnerability detection korai vulnerability detection a gyors javítás érdekében MetaDefender támogatja a sürgős javítási műveleteket azáltal, hogy azonosítja a sebezhető WinRAR-verziókat futtató eszközöket, és kiemeli a szükséges frissítéseket. A több mint 1100 alkalmazást támogató, robusztus sebezhetőség- és javításkezelési funkciói proaktív módon azonosítják azokat a végpontokat, amelyek nem frissített vagy elavult operációs rendszereket és harmadik féltől származó alkalmazásokat futtatnak, és javaslatokat nyújtanak a javításokra.
A Vulnerability Management lehetővé teszi a rendszergazdák számára, hogy gyorsan felismerjék a biztonsági réseket, rangsorolják a javításokat, és elősegítsék a frissítéseket a javított verzióra, ezzel csökkentve az archívumalapú fájlírási támadások – például a CVE-2025-8088 – és a hasonló végpontalapú fenyegetések kockázatát.

