
Forschungs-Repository für CVE-2026-80844 (DirtyAH6), eine lokale Rechteausweitung im Linux-Kernel IPv6 AH6/XFRM, mit PoC, Ursachenanalyse und Patch-Analyse.
DirtyAH6
CVE-2026-80844 ist eine Linux-Kernel-Schwachstelle, die das IPv6- Authentication Header (AH6) / XFRM-Subsystem betrifft.
Die Schwachstelle wird durch eine unzureichende Validierung des
segments_left-Feldes des IPv6-Routing-Headers verursacht, was potenziell zu
einer Out-of-Bounds-Speicheroperation und Kernel-Speicherkorruption führen kann.
Dieses Repository ist ausschließlich für autorisierte Sicherheitsforschung, Schwachstellenanalyse, CTFs und defensives Testen gedacht.
Verwenden Sie diese Forschung nicht gegen Systeme, die Ihnen nicht gehören oder für die Sie keine ausdrückliche Testgenehmigung haben.
Die Schwachstelle befindet sich im IPv6-AH6-Verarbeitungspfad.
Der betroffene Code führt eine Manipulation des Routing-Headers durch über:
net/ipv6/ah6.c
Konkret betrifft die anfällige Logik:
ipv6_rearrange_rthdr()
Die Funktion versäumte es, die Beziehung zwischen:
hdrlen
und:
segments_left
angemessen zu validieren.
Ein Angreifer, der ein speziell präpariertes IPv6-Paket liefern kann, kann daher verursachen, dass der Kernel auf Speicher außerhalb der erwarteten Routing-Header-Grenzen zugreift.
Dies kann führen zu:
Malformed IPv6 packet
│
▼
AH6 / XFRM processing
│
▼
Invalid routing-header state
│
▼
Out-of-bounds memory operation
│
▼
Kernel memory corruption
│
▼
Potential privilege escalation
Das grundlegende Problem ist die unzureichende Validierung des
segments_left-Wertes des IPv6-Routing-Headers.
Konzeptionell lässt sich die anfällige Bedingung darstellen als:
segments_left > available routing-header addresses
Der Kernel muss sicherstellen, dass die Anzahl der vom Routing-Header angeforderten Segmente mit der tatsächlichen Header-Länge übereinstimmt, bevor die zugehörigen Adressdaten manipuliert werden.
Ohne diese Validierung können nachfolgende Speicheroperationen über die gültigen Puffergrenzen hinaus ausgeführt werden.
Eine erfolgreiche Ausnutzung kann es einem Angreifer mit den erforderlichen lokalen Fähigkeiten/Umgebungsbedingungen ermöglichen, Kernel-Speicher zu korrumpieren.
Mögliche Konsequenzen sind:
Die genaue Ausnutzbarkeit hängt von der Kernel-Konfiguration, den verfügbaren Namespaces/Fähigkeiten und anderen Umgebungsbedingungen ab.
net/ipv6/ah6.c
Relevante Verarbeitung:
AH6
└── IPv6 Routing Header
└── ipv6_rearrange_rthdr()
Das problematische Szenario betrifft inkonsistente Routing-Header-Metadaten.
Zum Beispiel konzeptionell:
hdrlen → describes a limited number of addresses
segments_left → claims more addresses than are available
Diese Diskrepanz muss abgelehnt werden, bevor der Kernel die Adressumordnung durchführt.
Der Upstream-Fix führt eine Validierung des segments_left-Wertes des
Routing-Headers ein, bevor der Kernel die anfällige Operation durchführt.
Der zugehörige Upstream-Commit ist:
7bad4bda74dc4713f398d3b7624ff05478e3a568
xfrm: ah6: validate routing header segments_left
Der Sicherheitsfix lässt sich zusammenfassen als:
Before:
Trust segments_left
↓
Rearrange addresses
↓
Potential OOB access
After:
Validate segments_left
↓
Reject malformed header
↓
Safe AH6 processing
Die betroffenen Versionen hängen von der Upstream- und Vendor-Backport-Historie ab.
Benutzer sollten die Sicherheitshinweise ihrer Distribution überprüfen, anstatt sich nur auf die Upstream-Versionsnummer zu verlassen.
Beispiele für gepatchte Upstream-Stable-Releases sind:
Laufenden Kernel prüfen:
uname -a
oder:
uname -r
Detaillierte Kernel-Informationen prüfen:
cat /proc/version
Für Debian-/Kali-basierte Systeme:
apt-cache policy linux-image-amd64
Für RPM-basierte Systeme:
rpm -q kernel
Distributions-Kernel backporten häufig Sicherheitsfixes, ohne die Upstream-Version auf offensichtliche Weise zu ändern. Prüfen Sie immer den Vendor-Hinweis/Changelog.
Die primäre Gegenmaßnahme ist das Upgrade auf einen Kernel, der den Sicherheitsfix enthält.
Debian/Kali:
sudo apt update
sudo apt full-upgrade
Dann neu starten:
sudo reboot
Überprüfen:
uname -r
Für Produktionssysteme konsultieren Sie den offiziellen Sicherheitshinweis der Linux-Distribution, bevor Sie Kernel-Updates anwenden.
Empfohlene isolierte Umgebung:
Host
│
├── Kali Linux
│
└── Vulnerable Linux VM
│
├── Debug kernel
├── IPv6 enabled
├── AH6/XFRM support
└── Kernel symbols
Nützliche Debugging-Tools:
gdb
gef
pwndbg
crash
dmesg
pahole
objdump
readelf
Kernel-Debugging:
sudo dmesg -w
Kernel-Symbole inspizieren:
cat /proc/kallsyms
CVE-2026-80844-DirtyAH6/
│
├── README.md
│
├── exploit/
│ ├── poc.c
│ └── Makefile
│
├── analysis/
│ ├── vulnerability.md
│ ├── root-cause.md
│ └── patch-analysis.md
│
├── kernel/
│ ├── vulnerable.patch
│ └── fixed.patch
│
├── docs/
│ └── research-notes.md
│
├── screenshots/
│
└── LICENSE
PoC-Material sollte nur in einer isolierten Laborumgebung ausgeführt werden.
Die Forschungsimplementierung konzentriert sich darauf, die fehlerhafte IPv6-Routing-Header-Bedingung zu demonstrieren und das resultierende Kernel-Verhalten zu beobachten.
Erwarteter Forschungsablauf:
Craft malformed IPv6 header
↓
Transmit inside isolated lab
↓
AH6/XFRM processing
↓
Observe kernel behavior
↓
Capture dmesg / crash information
↓
Compare vulnerable vs patched kernel
Beispielüberwachung:
sudo dmesg -w
Ein gepatchter Kernel sollte fehlerhafte Eingaben ablehnen, ohne die anfällige Speicheroperation zu erreichen.
Diese Schwachstelle zeigt, warum Kernel-Netzwerkparser niemals Längen- oder Zählfelder vertrauen dürfen, die von einem Angreifer geliefert werden.
Sicherheitskritisches Parsing sollte folgen:
Input
↓
Bounds validation
↓
Relationship validation
↓
State validation
↓
Memory operation
anstatt:
Input
↓
Memory operation
↓
Validation
Selbst eine kleine Inkonsistenz zwischen zwei Paket-Metadatenfeldern kann zu einer Speichersicherheits-Schwachstelle auf Kernel-Ebene werden.
7bad4bda74dc4713f398d3b7624ff05478e3a568xfrm: ah6: validate routing header segments_leftLinux-Kernel-Sicherheitsforschung
CVE-2026-80844 · IPv6 · AH6 · XFRM · LPE
Research • Analyze • Understand • Harden
| Feld | Details |
|---|
| CVE | CVE-2026-80844 |
| Codename | DirtyAH6 |
| Komponente | Linux-Kernel |
| Subsystem | IPv6 / XFRM / AH6 |
| Schwachstellentyp | Lokale Privilegienausweitung |
| Angriffsvektor | Lokal |
| Angriffskomplexität | Niedrig |
| Erforderliche Privilegien | Niedrig |
| Benutzerinteraktion | Keine |
| CVSS v3.1 | 7.8 — Hoch |
| Betroffener Code | net/ipv6/ah6.c |
| Status | Gepatcht |
| Kernel-Zweig | Gepatchtes Release |
|---|
| 5.10 | 5.10.270 |
| 5.15 | 5.15.221 |
| 6.1 | 6.1.188 |
| 6.6 | 6.6.157 |
| 6.12 | 6.12.109 |
| 6.18 | 6.18.50 |
| 7.2 | 7.2.4 |
| Verhalten | Anfälliger Kernel | Gepatchter Kernel |
|---|
Fehlerhaftes segments_left | Unzureichende Validierung | Validiert |
| Routing-Header-Verarbeitung | Wird möglicherweise fortgesetzt | Bei Ungültigkeit abgelehnt |
| OOB-Speicheroperation | Potenziell erreichbar | Verhindert |
| Kernel-Korruption | Möglich | Entschärft |
| Privilegienausweitung | Potenziell | Entschärft |