Dirty Frag: Speicherkorruption im Linux-IPv6-Stack (CVE-2026-43500)

Cover Image for Dirty Frag: Speicherkorruption im Linux-IPv6-Stack (CVE-2026-43500)

Unter dem Namen "Dirty Frag" werden zwei zusammenhängende Sicherheitslücken, CVE-2026-43500 und CVE-2026-43284, zusammengefasst. Diese betreffen die Verarbeitung von fragmentierten IPv6-Paketen im Linux-Kernel. Ähnlich wie die bereits analysierte Copy Fail Schwachstelle, ermöglicht Dirty Frag eine lokale Rechteausweitung (LPE). Während Copy Fail auf den Page-Cache abzielt, nutzt Dirty Frag die Reassemblierungs-Warteschlange des Netzwerk-Stacks für eine Heap-Korruption aus.

Technische Analyse: Race Condition in der IPv6-Reassemblierung

Das Kernproblem liegt in der Funktion ip6_frag_reasm. Wenn IPv6-Pakete für den Übertragungsweg zu groß sind, werden sie in Fragmente zerlegt. Der empfangende Kernel speichert diese Fragmente in einer Warteschlange, bis das Paket vollständig ist und wieder zusammengesetzt werden kann.

Anfang 2025 wurde eine Optimierung in der Verwaltung der sk_buff (Socket-Buffer) Strukturen eingeführt. Diese sollte die Effizienz bei fragmentierten Paketen steigern, schuf jedoch eine Race Condition. Mehrere Threads können dadurch gleichzeitig auf dieselbe Reassemblierungs-Warteschlange zugreifen.

Ein Angreifer kann eine Serie speziell präparierter, überlappender IPv6-Fragmente senden. Durch exaktes Timing dieser Fragmente wird die Race Condition ausgelöst. Dies führt dazu, dass der Kernel die Gesamtlänge des zusammengesetzten Pakets falsch berechnet. Beim finalen Zusammenfügen der Fragmente in einen zusammenhängenden Puffer kommt es zu einem Out-of-Bounds-Write im Heap-Speicher.

Heap-Korruption und sk_buff-Fehlverwaltung

Die zweite Komponente, CVE-2026-43284, betrifft das Lebenszyklus-Management der sk_buff-Strukturen während dieses fehlgeschlagenen Vorgangs. Der Schreibzugriff außerhalb der Puffergrenzen findet im Kernel-Heap statt. Durch die präzise Kontrolle über Größe und Inhalt der überlappenden Fragmente kann ein Angreifer benachbarte Kernel-Objekte überschreiben.

In einem typischen Exploit-Szenario werden Strukturen mit Funktionspointern angegriffen. Das Überschreiben dieser Pointer erlaubt es, den Ausführungsfluss des Kernels zu kontrollieren. Damit lassen sich moderne Sicherheitsmechanismen wie Supervisor Mode Execution Prevention (SMEP) umgehen, um beliebigen Code mit Kernel-Privilegien auszuführen.

Parallelen zu Copy Fail

Es gibt deutliche architektonische Gemeinsamkeiten zwischen Dirty Frag und der Copy Fail Lücke. Beide Szenarien nutzen Situationen aus, in denen der Kernel Datentransfers auf niedriger Ebene durchführt, ohne das Ziel oder die Berechtigungen ausreichend zu validieren.

  • Copy Fail nutzt die Krypto-API, um Schreibvorgänge in den Page-Cache schreibgeschützter Dateien zu erzwingen.
  • Dirty Frag nutzt den Netzwerk-Stack, um über die Grenzen von Heap-Puffern hinaus zu schreiben.

In beiden Fällen ermöglicht die Schwachstelle einem unprivilegierten Benutzer, den Kernel in einen illegalen Zustand zu versetzen, der zur vollständigen Systemübernahme führt.

Zeitlicher Ablauf der Ereignisse

Die Entwicklung von Dirty Frag von der Entdeckung bis zur Behebung ist in der folgenden Tabelle dokumentiert.

DatumEreignis
03. Feb. 2025Einführung der fehlerhaften Reassemblierungs-Logik im IPv6-Stack.
20. März 2026Entdeckung der Race Condition während Belastungstests.
15. April 2026Zuweisung der CVE-Nummern CVE-2026-43500 und CVE-2026-43284.
02. Mai 2026Veröffentlichung des technischen Whitepapers zum "Dirty Frag" Exploit.
04. Mai 2026Integration der Patches in den stabilen Linux-Kernel-Zweig.
06. Mai 2026Große Linux-Distributionen veröffentlichen Sicherheitsupdates.
08. Mai 2026Erste Versuche der aktiven Ausnutzung der Lücke werden beobachtet.

Auswirkungen und Behebung

Die Dirty Frag Lücke ist aufgrund der weiten Verbreitung von IPv6 und der Zuverlässigkeit des Exploits auf Multi-Core-Systemen als kritisch einzustufen. Betroffen sind alle Linux-Systeme mit Kernel-Versionen von Anfang 2025 bis zum Patch-Zyklus im Mai 2026.

Die Behebung erfordert ein Update des Kernels auf eine Version, die die Korrekturen für ip6_frag_reasm und das sk_buff-Management enthält. Diese Patches führen neue Locking-Mechanismen ein, um den gleichzeitigen Zugriff auf die Warteschlange zu verhindern, und validieren überlappende Fragmente strenger. Ein Neustart des Systems ist erforderlich, um den Schutz zu aktivieren.

Nächste Artikel.