
Proof-of-Concept-Exploit für CVE-2026-31431, eine lokale Privilege-Escalation-Schwachstelle im Linux-Kernel im Modul algif_aead, die es unprivilegierten Benutzern ermöglicht, über einen 4-Byte-Schreibzugriff in den Page Cache Root-Rechte zu erlangen.
Dieses Repository enthält einen Proof-of-Concept-Exploit für CVE-2026-31431, eine lokale Privilege-Escalation-Schwachstelle im Linux-Kernel mit hohem Schweregrad, die es jedem nicht privilegierten lokalen Benutzer ermöglicht, Root-Zugriff zu erlangen. Der Fehler, genannt „Copy Fail“, befindet sich im Modul algif_aead und kann mit der AF_ALG-Socket-Schnittstelle und dem Systemaufruf splice() verkettet werden, um einen kontrollierten 4-Byte-Schreibvorgang in den Page Cache einer beliebigen lesbaren Datei durchzuführen, beispielsweise der setuid-Binärdatei /usr/bin/su.
Die Schwachstelle betrifft nahezu alle Linux-Kernel, die seit 2017 veröffentlicht wurden, einschließlich aller großen Distributionen (Ubuntu, Debian, RHEL, SUSE, Amazon Linux und viele andere). Sie wurde am 29. April 2026 öffentlich bekannt gegeben. Ein Fix wurde im Upstream eingecheckt (Commit a664bf3d603d), aber viele Anbieter sind noch dabei, gepatchte Kernel zu veröffentlichen. Bis ein gepatchter Kernel verfügbar ist, wird dringend empfohlen, das Kernel-Modul algif_aead als vorübergehende Gegenmaßnahme zu deaktivieren.
⚠ Wichtig: Dieses Material wird ausschließlich für Bildungszwecke und autorisierte Sicherheitsforschung bereitgestellt. Verwenden Sie es nicht gegen Systeme, die Ihnen nicht gehören, oder ohne ausdrückliche Genehmigung.
Das Repository enthält zwei PoC-Implementierungen, die die Ausnutzung aus verschiedenen Blickwinkeln demonstrieren.
copy-fail-poc-short.py — minimal, nahe am OriginalEine komprimierte Version, die sehr nah am ursprünglich veröffentlichten Python-Exploit bleibt. Sie verwendet einbuchstabige Variablennamen und verzichtet auf Kommentare oder Konstanten, was sie extrem kompakt macht (732 Bytes). Diese Variante:
/usr/bin/su und einen rohen AF_ALG-AEAD-Socket.os.splice, um den entsprechenden 4-Byte-Block aus der Zieldatei mit Zero-Copy zu übertragen./usr/bin/su aus, um in eine Root-Shell zu gelangen.copy-fail-poc.py — vollständig refaktoriert, umfassendEine vollständig neu geschriebene, gut dokumentierte Version, die den Best Practices von Python folgt. Diese Variante:
send_data_over_crypto_socket()), um die Kernlogik zu isolieren.Diese Version ist ideal für alle, die die Schwachstelle eingehend verstehen oder den Code für weitere Forschung anpassen möchten.
Auf hoher Ebene führt der Exploit Folgendes aus:
setuid-Binärdatei (/usr/bin/su).AF_ALG-AEAD-Socket und konfiguriert ihn mit den Parametern, die erforderlich sind, um den Logikfehler auszulösen.splice().algif_aead schreibt der Kernel fälschlicherweise 4 Bytes vom Angreifer kontrollierter Daten in den Page Cache der Ziel-Binärdatei./usr/bin/su patcht die Binärdatei effektiv zur Laufzeit, sodass ein nicht privilegierter Benutzer eine gepatchte Version ausführen kann, die eine Root-Shell zurückgibt.Der Exploit ist äußerst zuverlässig (100 % Erfolgsquote) und erfordert keine Race-Windows oder kernelspezifischen Offsets.
a664bf3d603d (git.kernel.org)