CVE-2025-8088 ist eine Path-Traversal-Sicherheitslücke in WinRAR, von der Versionen vor 7.13 betroffen sind. Durch Ausnutzen dieser Sicherheitslücke kann ein speziell gestaltetes Archiv die Überprüfung von Dateinamen und Pfaden beim Entpacken umgehen und dazu führen, dass vom Angreifer kontrollierte Inhalte an bestimmte Speicherorte auf einem NTFS-Volume geschrieben werden. Unter bestimmten Umständen kann diese Schreibfunktion zur Ausführung von Remote-Code genutzt werden.
Stipendiaten des OPSWAT Fellowship Program haben eine technische Analyse von CVE-2025-8088 durchgeführt. Die Ergebnisse dieser Analyse der Funktionsweise von RAR5 und NTFS (ADS) verfolgen den Extraktionsablauf und den Verarbeitungsweg der ADS, die zu unsicheren Schreibvorgängen führen, und fassen praktische Empfehlungen zur Risikominderung und Behebung für Cybersicherheitsexperten und Organisationen zusammen.

Einführung in CVE-2025-8088
WinRAR ist eines der meistgenutzten Archivierungsprogramme unter Windows. Es unterstützt die Beibehaltung und Wiederherstellung von NTFS-spezifischen Metadaten, wie beispielsweise ADS (Alternate Data Streams). Die Sicherheitslücke CVE-2025-8088 betrifft die ADS-Verarbeitungslogik bestimmter WinRAR-Versionen. In anfälligen Versionen kann ein bösartiges Archiv den beim Entpacken verwendeten Stream-Identifikator manipulieren, wobei eine unzureichende Pfadnormalisierung und -validierung im ADS-Erstellungsablauf einen Verzeichnisüberlauf ermöglicht.
CVE-2025-8088 wird als Problem mit hohem Schweregrad eingestuft und weist einen CVSS v4.0-Basiswert von 8,4 (High) auf. Dies spiegelt das Potenzial für messbare Sicherheitsauswirkungen wider, falls ein Benutzer ein speziell gestaltetes Archiv mit einer anfälligen Version von WinRAR entpackt.

Technischer Hintergrund
NTFS-Alternativdatenströme
NTFS (New Technology File System) ist das Standarddateisystem für moderne Windows-Versionen. Im Vergleich zu FAT-basierten Dateisystemen unterstützt NTFS erweiterte Funktionen wie ACLs (Zugriffskontrolllisten), EFS-Verschlüsselung, Komprimierung, Hardlinks, Reparse-Punkte (Junction- und Symlink-Punkte) sowie ADS.
ADS ist eine NTFS-Funktion, die es ermöglicht, dass eine einzelne Datei oder ein Verzeichnis mehrere unabhängige Datenströme enthält. Der primäre, für den Benutzer sichtbare Inhalt wird im unbenannten Standardstrom gespeichert, der üblicherweise als ::$DATA dargestellt wird, während auf zusätzliche benannte Ströme mit folgender Syntax zugegriffen werden kann:
Dateiname.ext:Streamname
Diese benannten Streams sind in den Standardansichten des Windows Explorers normalerweise nicht sichtbar, werden jedoch vom Dateisystem vollständig unterstützt und können mit geeigneten Tools aufgelistet werden. So lassen sich beispielsweise mit dem Befehl„dir/R“ alternative Streams anzeigen.
WinRAR unterstützt das Entpacken von Archiv-Einträgen, die ADS-Syntax enthalten. Wenn ein Archiv solche Einträge enthält, schreibt WinRAR den entsprechenden Inhalt beim Entpacken in den alternativen Datenstrom der Zieldatei.

Die RAR5-Dateistruktur verstehen
RAR5-Archive werden als Folge von Blöcken gespeichert. Jeder Block beginnt mit einem Header, der den Blocktyp und Angaben zur Größe enthält. Optional kann er einen zusätzlichen Metadatenbereich sowie einen Datenbereich umfassen, der aus Nutzdatenbytes, wie beispielsweise komprimierten Inhalten, besteht.
Block = Kopfzeile + (optionaler Zusatzbereich) + (optionaler Datenbereich)
RAR5 verwendet mehrere Blocktypen. Die relevanten Blocktypen in der CVE sind:
- Dateikopf (Typ 2): Beschreibt einen Dateieintrag im Archiv (Name/Pfad, Attribute, Zeitstempel, Komprimierungsparameter) und wird von den Nutzdaten der Datei gefolgt
- Service-Header (Typ 3): Optionale Zusatz-Header, die zusätzliche Metadaten enthalten, die mit dem Archiv oder einem bestimmten Dateieintrag verknüpft sind, wie z. B. ADS
ADS im NTFS-Dateisystem werden durch einen Service-Header (Typ 3) dargestellt, der als STM bezeichnet wird. Der Datenbereich des Service-Headers enthält die ADS-Stream-Bytes für den Basisdateieintrag.
Vereinfacht ausgedrückt:

Technische Analyse (CVE-2025-8088)
Ablauf der RAR5-Entpackung
WinRAR verarbeitet RAR5-Archive als eine Abfolge von Blöcken. Während des Entpackens durchläuft das Programm diese Blöcke, analysiert jeden Block-Header und überprüft die Integrität des Headers anhand des eingebetteten CRC32, bevor es fortfährt. Nachdem ein Dateieintrag verarbeitet wurde, dekomprimiert WinRAR den Inhalt der Basisdatei und schreibt ihn auf die Festplatte; anschließend ermittelt es, ob zusätzliche NTFS-bezogene Metadaten über zugehörige Service-Einträge angewendet werden müssen. Wenn ein ADS-Datensatz (Alternate Data Stream) vorhanden ist, wie beispielsweise ein STM-Diensteneintrag, wechselt WinRAR in den ADS-Verarbeitungszweig, kombiniert den Basisdateipfad mit dem Stream-Namen, um das ADS-Ziel zu bilden, und erstellt den Stream.

Bei CVE-2025-8088 liegt die Ursache darin, dass bei der Erstellung eines ADS-Streams die API ()“ mit einem Pfad aufgerufen wird, der aus archivgesteuerten Metadaten abgeleitet wurde, wodurch die Erstellung und Validierung des ADS-Pfads nicht ausreicht, um eine Verzeichnisdurchquerung zu verhindern.
Ermittlung des ADS-Code-Pfads („STM“)
Unsere Doktoranden führten in einer kontrollierten Laborumgebung unter Verwendung von WinRAR 7.12 eine Kombination aus statischer und dynamischer Analyse durch. Sie lokalisierten ADS-bezogene Logik, indem sie in der Binärdatei nach dem Dienstmarker „STM“ suchten, und bestätigten anschließend den Code-Pfad auf der Extraktionsseite zur Laufzeit.

Durch das Setzen eines Haltepunkts an der „STM“-Referenz, auf die bei der Extraktion eines Archivs mit ADS-Daten gestoßen wurde, wurde der Haltepunkt durchgängig ausgelöst, was bestätigte, dass dieser Ausführungsweg während des normalen Extraktionsablaufs aufgerufen wird.

Beim Erreichen des Haltepunkts wurde der Aufrufstapel des Debuggers verwendet, um die Abfolge der Funktionen zu rekonstruieren, die nach der Aktion „Extrahieren“ in der WinRAR-Benutzeroberfläche aufgerufen wurden, wodurch ein klarer Anker für die nachgelagerte Blockverarbeitung und den ADS-Ausführungspfad geschaffen wurde.

Header-Analyse und CRC32-Prüfung
WinRAR verarbeitet jeden RAR5-Block, indem es den Block-Header liest, die Integritätsfelder überprüft und die Verarbeitung an einen blocktypspezifischen Handler weiterleitet. Der Einstiegspunkt für die Blockverarbeitung und die zugehörige Logik zur Header-Analyse sind in den Abbildungen 6–10 dargestellt. Dort setzt WinRAR den Dateizeiger auf den aktuellen Block-Offset, liest die ersten Header-Bytes, die den Header-Typ und die Größe enthalten, und überprüft die Header-Integrität mithilfe von CRC32, bevor es fortfährt.
Nach erfolgreicher Validierung werden weitere Header-Felder wie Flags, entpackte Größe, Komprimierungsmethode und optionale Prüfsummen ausgewertet. Anschließend wird der Blockinhalt verarbeitet.



Beim Reverse Engineering wurde festgestellt, dass sich die CRC32-Routine genau wie eine standardmäßige CRC32-Implementierung im zlib-Stil verhält. In der Praxis dient diese CRC32-Prüfung als Integritätskontrolle. Werden Header-Felder verändert, muss der eingebettete CRC32-Wert aktualisiert werden, damit WinRAR den Header akzeptiert und die Verarbeitung fortsetzt.

Nach der Überprüfung des CRC32-Headers fährt der Parser fort, indem er die übrigen Header-Informationen extrahiert, wie beispielsweise die Größe nach dem Entpacken, die Komprimierungsmethode und weitere Attribute.

Nachdem die Analyse und Validierung des Headers abgeschlossen sind, verarbeitet WinRAR den Blockinhalt entsprechend dem analysierten Headertyp und den Flags.

Bei CVE-2025-8088 wird die Überprüfung der Header-Integrität durchgeführt, bevor WinRAR die Daten an den Service-Block-Handler weiterleitet, der ADS-Datensätze verarbeitet.
Erstellung von Anzeigen über den Service-Block („STM“)
Der ADS-Verarbeitungsweg wird aufgerufen, wenn WinRAR auf einen Service-Block stößt. Service-Blöcke verwenden den Blocktypwert 3. Wenn ein Service-Block erkannt wird, leitet WinRAR diesen an einen Service-Header-Handler weiter.

Innerhalb des Dienst-Handlers überprüft WinRAR den Dienstnamen. Stimmt der Dienstname mit „STM“ überein, wird der Datensatz als ADS-Nutzdaten behandelt, und die Implementierung wechselt in eine Routine zur Erstellung von ADS-Dateien.

WinRAR ruft dann den Stream-Namen aus dem Service-Eintrag ab und kombiniert ihn mit dem Basisdateipfad, um das endgültige ADS-Ziel zu bilden. In Versionen vor 7.13 zeigt die Analyse, dass der Stream-Name nicht ausreichend bereinigt wird, wodurch Traversal-Sequenzen die Auflösung des resultierenden Zielpfads beeinflussen können.


Nach der Erstellung des Ziels erzeugt WinRAR den Stream über eine Hilfsroutine, die die Windows API „CreateFileW“ aufruft, und schreibt anschließend die ADS-Bytes mit „WriteFile“. Liegt der aufgelöste Pfad außerhalb des vom Benutzer ausgewählten Entpackungsverzeichnisses, erstellt WinRAR den Ziel-Stream bzw. die Zieldatei und füllt diese mit vom Angreifer kontrollierten Inhalten.




Zusammenfassend lässt sich sagen, dass der ADS-Extraktionsablauf zwei sicherheitsrelevante Schwachstellen aufweist. Erstens wird der Name des ADS-Streams nicht ausreichend bereinigt, sodass Traversal-Sequenzen den resultierenden Zielpfad beeinflussen können. Zweitens erstellt WinRAR den ADS-Stream durch den Aufruf von `CreateFileW()` mit einem Pfad, der aus archivgesteuerten Metadaten abgeleitet wird.
In Kombination ermöglichen diese Bedingungen es einem speziell gestalteten Archiv, das Ziel von „CreateFileW()“ außerhalb des vorgesehenen Entpackungsverzeichnisses zu platzieren und vom Angreifer kontrollierte Inhalte an einen vom Angreifer beeinflussbaren Speicherort zu schreiben. Handelt es sich bei dem Ziel um ein für die Persistenz relevantes Verzeichnis (beispielsweise den Autostart-Ordner des Benutzers), kann diese Schreiboperation je nach Art der Payload und Systemkonfiguration die Ausführung von Folgecode bei der nächsten Anmeldung oder beim nächsten Neustart ermöglichen.
Angriffsszenario
CVE-2025-8088 kann in der Praxis ausgenutzt werden, wenn ein Angreifer einen Benutzer dazu verleitet, ein manipuliertes RAR-Archiv mit einer anfälligen Version von WinRAR zu entpacken. Ein typischer Angriffsvektor ist Social Engineering, beispielsweise Phishing, wodurch das Opfer dazu gebracht wird, einem schädlichen Archiv zu vertrauen und das Entpacken auf einem kritischen System zu starten.
Das Archiv enthält einen ADS-Dienstdatensatz („STM“). Der Name des Streams ist so aufgebaut, dass er eine traversale Semantik einführt. Bei der Entpackung auf NTFS verarbeitet WinRAR den ADS-Datensatz und leitet den Zielpfad des Streams aus den vom Archiv verwalteten Metadaten ab. Da diese ADS-Pfadaufbau nicht ausreichend eingeschränkt ist, kann das aufgelöste Ziel außerhalb des vom Benutzer ausgewählten Entpackungsverzeichnisses liegen, einschließlich kritischer Speicherorte wie dem Startordner des Benutzers.

Proof of Concept
Um CVE-2025-8088 zu demonstrieren, haben unsere Doktoranden eine speziell präparierte RAR-Archivdatei erstellt, die einen ADS-Dienstdatensatz („STM“) mit vom Angreifer kontrollierten Feldern enthält. Dieses Archiv ist so strukturiert, dass der ADS-Stream-Name Traversal-Sequenzen enthält. Diese Struktur beeinflusst den endgültigen Zielspeicherort während der ADS-Verarbeitung, einschließlich des Pfads, der bei der Erstellung des Streams an CreateFileW() übergeben wird. Um sicherzustellen, dass WinRAR die geänderten Metadaten akzeptiert und den ADS-Verarbeitungspfad erreicht, werden die entsprechenden CRC32-Werte des Headers neu berechnet, damit das Archiv die Header-Integritätsprüfung besteht.

Wenn eine anfällige WinRAR-Version beim Entpacken des manipulierten Archivs in die ADS-Verarbeitungsroutine gelangt, schreibt sie den vom Angreifer kontrollierten Inhalt nicht in das vom Benutzer gewählte Entpackungsverzeichnis, sondern in das vorab ausgewählte Zielverzeichnis. Nach dem Entpacken hängt die Ausführung der Schadcode-Nutzlast von ihrem Format und den Ausführungsmechanismen des vorab ausgewählten Zielverzeichnisses ab. Dazu gehören beispielsweise Speicherorte, an denen Inhalte bei der nächsten Anmeldung oder beim nächsten Neustart ausgeführt werden können.

Sanierung
Das Risiko von CVE-2025-8088 lässt sich mindern, indem WinRAR auf allen verwalteten Endgeräten auf eine gepatchte Version (7.13 oder höher) aktualisiert wird. Ist eine rechtzeitige Aktualisierung nicht möglich, müssen Ausgleichsmaßnahmen in Betracht gezogen werden, wie zum Beispiel:
- Die ADS-Beibehaltung in Archivierungstools einschränken oder deaktivieren, wenn sie nicht benötigt wird
- Die Entpackung nicht vertrauenswürdiger Archive auf isolierte Umgebungen beschränken
- Durchsetzung des Prinzips der geringsten Berechtigungen (Vermeidung der Ausführung von Extraktionswerkzeugen mit erhöhten Rechten)
- Überwachung kritischer Verzeichnisse, wie z. B. Startordner, auf unerwartete Schreibvorgänge, die aus Workflows zur Entpackung von Archiven stammen
Zur frühzeitigen vulnerability detection zur schnellen Behebung unterstützt MetaDefender dringende Korrekturmaßnahmen, indem es Geräte identifiziert, auf denen anfällige WinRAR-Versionen laufen, und erforderliche Updates hervorhebt. Seine robusten Funktionen für das Schwachstellen- und Patch-Management, die mehr als 1100 Anwendungen unterstützen, erkennen proaktiv Endgeräte, auf denen ungepatchte oder veraltete Betriebssysteme und Anwendungen von Drittanbietern laufen, und liefern empfohlene Korrekturen.
Vulnerability Management ermöglicht es Administratoren, Sicherheitslücken schnell zu erkennen, Abhilfemaßnahmen zu priorisieren und Upgrades auf eine gepatchte Version voranzutreiben. Dadurch wird das Risiko von Angriffen durch das Schreiben von Dateien in Archive, wie beispielsweise CVE-2025-8088, sowie ähnlicher Bedrohungen auf Endgeräten verringert.

