Copy Fail: Page-Cache-Manipulation im Linux-Kernel (CVE-2026-31431)

Mit CVE-2026-31431 wurde eine kritische Sicherheitslücke im Krypto-Subsystem des Linux-Kernels identifiziert. Unter dem Namen "Copy Fail" bekannt, erlaubt dieser Fehler lokalen Angreifern die Erlangung von Root-Rechten. Die Schwachstelle nutzt eine fehlerhafte Speicherverwaltung im algif_aead-Interface aus, um den Page-Cache des Systems gezielt zu korrumpieren.
Technische Analyse: Die algif_aead-Logikfalle
Die Schwachstelle befindet sich in der Komponente algif_aead. Diese stellt eine Schnittstelle für den User-Space bereit, um AEAD-Verfahren (Authenticated Encryption with Associated Data) zu nutzen. AEAD-Verfahren sind essenziell für die moderne Kryptographie, da sie nicht nur die Vertraulichkeit der Daten (Verschlüsselung) sicherstellen, sondern durch assoziierte Daten (AD) auch deren Integrität prüfen.
Im Jahr 2024 wurde mit dem Commit 72548b093ee3 eine "In-Place"-Optimierung eingeführt. Das Ziel war es, Rechenzeit und Speicher zu sparen, indem Verschlüsselungs- oder Entschlüsselungsoperationen direkt in den Puffern durchgeführt werden, die die Anwendung bereitstellt. Bei einer regulären In-Place-Operation geht der Kernel davon aus, dass Quell- und Zielpuffer auf denselben physischen Speicherbereich zeigen.
Die Fehlerhaftigkeit der Implementierung zeigt sich bei der Umwandlung von User-Space-Speicher in Kernel-interne Scatter-Gather-Listen (SGLs). Wenn eine Anwendung Quell- und Zielpuffer definiert, erstellt das algif_aead-Interface diese SGLs, um die Speicherseiten zu verwalten. Wenn der Zielpuffer via mmap() auf eine Datei zeigt, verweisen die SGL-Einträge direkt auf die Seiten des Page-Caches dieser Datei im Kernel-Speicher.
Durch die fehlerhafte Optimierung nahm der Code an, dass das Layout der assoziierten Daten im Quell-SGL exakt dem im Ziel-SGL entspricht. Wenn der Zielpuffer jedoch auf ein Mapping einer anderen Datei zeigte, versuchte der Kernel, die verarbeiteten AD-Daten an die ursprünglichen Offsets im Ziel-Mapping zurückzuschreiben. Dies führte dazu, dass der Kernel Daten direkt in den Page-Cache der Zieldatei schrieb, selbst wenn diese nur mit Leserechten geöffnet war.
Diese Manipulation ist möglich, weil die Speicheroperationen der Krypto-API auf einer Ebene stattfinden, die unterhalb der Virtual File System (VFS) Schicht liegt. Während das VFS standardmäßig Berechtigungen bei write()-Systemrufen prüft, sieht es diese internen Speicherzugriffe des Krypto-Subsystems nicht. Der Angreifer nutzt also die AEAD-Schnittstelle als "Hebel", um Schreiboperationen im Kernel-Speicher zu erzwingen, die regulär blockiert würden.
Der Angriffsvektor: Rechteausweitung via Page-Cache
Der Page-Cache ist der zentrale Mechanismus des Kernels, um festplattenbasierte Daten im Arbeitsspeicher vorzuhalten. Lesezugriffe auf Dateien werden primär aus diesem Cache bedient, um langsame Festplattenzugriffe zu vermeiden.
Die Copy-Fail-Lücke erlaubt es einem Angreifer, den Zielpuffer einer Krypto-Operation auf ein Memory-Mapping einer Datei zu lenken, für die er nur Leserechte besitzt.
Der typische Ablauf eines Angriffs:
- Der Angreifer öffnet eine sensible Datei wie
/etc/shadowim Lesemodus. - Die Datei wird mittels
mmap()in den Adressraum des Angreifer-Prozesses gemappt. - Es wird eine AEAD-Anfrage vorbereitet, bei der der Zielpuffer auf dieses Mapping zeigt.
- Durch speziell präparierte assoziierte Daten wird die
algif_aead-Schwachstelle getriggert.
Der Kernel schreibt daraufhin die vom Angreifer gewählten Daten in die Page-Cache-Seiten der Zieldatei. Da der Schreibvorgang vom Kernel selbst initiiert wurde, markiert er die Seiten als modifiziert ("dirty"). Jeder andere Prozess auf dem System, der nun die Datei liest—wie etwa der login-Prozess oder der sshd-Dienst—erhält die manipulierten Daten direkt aus dem korrumpierten Cache. Falls der Kernel diese Seiten später auf die Festplatte schreibt, wird die Manipulation permanent und hinterlässt eine dauerhafte Hintertür.
Zeitlicher Ablauf der Ereignisse
Die folgende Tabelle fasst die Entwicklung von der Einführung des Fehlers bis zur breiten Verteilung der Patches zusammen.
| Datum | Ereignis |
|---|---|
| 14. Okt. 2024 | Commit 72548b093ee3 führt die fehlerhafte In-Place-Optimierung ein. |
| 12. März 2026 | Sicherheitsforscher von Theori entdecken die Diskrepanz im Memory-Mapping. |
| 22. April 2026 | Meldung der Schwachstelle an das Security-Team des Linux-Kernels. |
| 29. April 2026 | Öffentliche Bekanntgabe und Zuweisung von CVE-2026-31431. |
| 30. April 2026 | Distributionen (Ubuntu, Debian, RHEL) veröffentlichen gepatchte Kernel. |
| 01. Mai 2026 | CISA nimmt CVE-2026-31431 in den Katalog aktiv ausgenutzter Lücken auf. |
| 08. Mai 2026 | Großteil der Systeme ist gepatcht; Altsysteme bleiben gefährdet. |
Auswirkungen und Behebung
Die Lücke wird mit einem CVSS-Score von 7.8 (Hoch) bewertet. Sie ist besonders gefährlich, da sie eine zuverlässige Methode zur lokalen Rechteausweitung bietet, ohne dass komplexe Heap-Manipulationen oder Bypasses für Schutzmechanismen wie KASLR erforderlich sind.
Die Behebung erfolgte durch die vollständige Rücknahme der In-Place-Optimierung in algif_aead. Der Kernel führt Operationen nun standardmäßig wieder "Out-of-Place" durch. Dies stellt sicher, dass Quell- und Zielpuffer strikt getrennt bleiben und verhindert die fehlerhafte Adressierung im Page-Cache.
Systemadministratoren müssen sicherstellen, dass sie eine Kernel-Version verwenden, die nach dem 30. April 2026 veröffentlicht wurde. Da es sich um eine Korrektur im Kernel-Kern handelt, ist ein Neustart des Systems erforderlich, um die Änderungen zu aktivieren.
Falls diese Analyse von Speicher-Korrumpierung und Privilegieneskalation hilfreich war, verdient ein ähnlicher Fall Ihre Aufmerksamkeit: die „Dirty Frag“-Schwachstelle (CVE-2026-31432). Kurze Zeit nach der Entdeckung dieser Swachstelle entdeckt, basiert sie ganz ähnlich wie der hier behandelte Fehler resultiert sie aus einer fehlerhaften Handhabung von Speicherfragmenten innerhalb des Netzwerk-Stacks und bietet eine weitere Perspektive darauf, wie der Kernel-Speicher kompromittiert werden kann.
Nächste Artikel.
Dirty Frag: Speicherkorruption im Linux-IPv6-Stack (CVE-2026-43500)
Dirty Frag beschreibt eine kritische Schwachstelle im Netzwerk-Stack des Linux-Kernels. Durch eine Race Condition bei der IPv6-Fragmentierung können Angreifer eine Heap-Korruption und lokale Rechteausweitung erzwingen.
Kabellose Freiheit: HP-Drucker unter Linux optimal nutzen
Ein umfassender Guide zur Einrichtung von HP DeskJet, OfficeJet und LaserJet Druckern unter Linux mit HPLIP – inklusive WLAN-Konfiguration und Scanning-Tipps.
KI ohne Port-Freigabe: OpenClaw und Ollama sicher über Tailscale vernetzen
OpenClaw ist ein mächtiger KI-Agent, aber voller Host-Zugriff birgt Risiken. Erfahre, wie du OpenClaw und Ollama sicher verbindest, indem du Tailscale nutzt, um den Zugriff auf einen einzigen Port zu beschränken und dein Heimnetzwerk zu schützen.


