CVE-2026-46300
CVE-2026-46300 – Fragnesia
Fragnesia ist eine lokale Privilege-Escalation-Schwachstelle (LPE) im Linux-Kernel, entdeckt am 13. Mai 2026 von William Bowling (Zellic / V12 Security) mithilfe eines KI-gestützten Code-Audit-Tools. Sie ist die dritte kritische Kernel-Lücke dieser Art innerhalb von drei Wochen – nach Copy Fail und Dirty Frag.
Der Name leitet sich vom technischen Kernproblem ab: Der Socket-Buffer vergisst (forgets), dass ein Fragment (frag) als geteilt markiert war – frag amnesia → Fragnesia.
Hintergrund
Fragnesia gehört zur selben Fehlerklasse wie Dirty Pipe, Copy Fail und Dirty Frag: Ein normaler Benutzer ohne Root-Rechte kann gezielt Daten in den Page Cache des Kernels schreiben, ohne dass die eigentliche Datei auf dem Datenträger verändert wird. Klassische Erkennungsmethoden wie Hashprüfungen oder Log-Analysen greifen daher nicht. Nach einem Neustart oder beim Leeren des Page Cache verschwinden alle Spuren automatisch.
Im Gegensatz zu vielen anderen Kernel-Exploits erfordert Fragnesia kein präzises Timing und keinen Race Condition – es handelt sich um einen deterministischen Logikfehler mit sehr hoher Erfolgsrate.
Besonders unangenehm: Fragnesia ist ein unbeabsichtigter Nebeneffekt des Patches, der Dirty Frag beheben sollte. Dirty-Frag-Entdecker Hyunwoo Kim hat öffentlich bestätigt, dass die Lücke durch den Commit zu CVE-2026-43284 erst aktiviert wurde. Jeder Kernel, der den Dirty-Frag-Patch zwischen dem 7. und 13. Mai 2026 erhielt, war anschließend für Fragnesia angreifbar.
Betroffene Komponente
- XFRM ESP-in-TCP (CVE-2026-46300)
- Der Fehler liegt in der Kernfunktion
skb_try_coalesce()im Socket-Buffer-Code.
Beim Zusammenführen von Socket-Buffer-Fragmenten wird das Flag
SKBFL_SHARED_FRAG nicht weitergegeben. Der Kernel verliert dadurch die
Information, dass ein Fragment extern gespeichert ist – zum Beispiel durch Page-Cache-Seiten,
die via splice() aus einer Datei eingebunden wurden.
Der XFRM-ESP-in-TCP-Empfangspfad führt anschließend eine AES-GCM-Entschlüsselung direkt auf diesen Page-Cache-Seiten durch (in-place decryption). Durch Kontrolle des Initialisierungsvektors (IV/Nonce) wird dies zu einem deterministischen Ein-Byte-Schreibzugriff auf die gecachte Kopie einer beliebigen lesbaren Datei.
Die Schwachstelle betrifft alle Kernel ohne den Upstream-Patch vom 13. Mai 2026.
Amazon Linux ist nicht betroffen – das Modul espintcp wird dort nicht ausgeliefert.
CloudLinux 7 (nicht 7h) ist ebenfalls nicht betroffen (älterer Kernel-Pfad).
Betroffene Versionen
Alle Distributionen mit Kerneln vor dem 13. Mai 2026, sofern das Modul
espintcp verfügbar ist:
- Ubuntu (bestätigt: 6.8.0-111-generic, Build vom 11. April 2026)
- Red Hat Enterprise Linux / CentOS Stream 10
- AlmaLinux 8, 9, 10
- Fedora
- Debian
- SUSE / openSUSE Tumbleweed
Proof of Concept
Der PoC wurde von William Bowling (V12 Security) öffentlich auf GitHub veröffentlicht
und ist in C geschrieben. Er zielt auf /usr/bin/su im Page Cache und
öffnet eine Root-Shell.
- Kompilieren und ausführen
git clone https://github.com/v12-security/pocs.git cd pocs/fragnesia gcc -o exp fragnesia.c ./exp
Hinweis Ubuntu: AppArmor schränkt unprivilegierte User-Namespaces standardmäßig ein. Zum Testen muss diese Einschränkung zunächst deaktiviert werden:
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
- Ablauf des Exploits
unshare(CLONE_NEWUSER | CLONE_NEWNET)– erstellt unprivilegierte User- und
Network-Namespaces; innerhalb des Namespace erhält der Prozess CAP_NET_ADMIN
ohne echte Host-Rechte
- Via
NETLINK_XFRMwird eine Transport-Mode ESP-in-TCP Security Association
mit AES-128-GCM, bekanntem Key und SPI 0x100 installiert
- Eine 256-Einträge-Keystream-Tabelle wird über
AF_ALGaufgebaut:
Für jeden möglichen Byte-Wert (0–255) wird die passende Nonce vorberechnet
- Via
splice()werden file-backed Pages (z. B. von/usr/bin/su)
in den TCP-Receive-Queue eingereiht
- Der Socket wird in den
espintcp-ULP-Modus versetzt –
nach dem splice, zu spät für die Shared-Frag-Prüfung
- Der Kernel entschlüsselt die Page-Cache-Seiten direkt (in-place AES-GCM)
- Der AES-GCM-Keystream XORt sich kontrolliert in die Zielseite –
ein deterministischer Ein-Byte-Schreibzugriff pro Durchlauf
- Schritte 4–7 werden byte-für-byte wiederholt bis der gewünschte Payload steht
- Ergebnis
Beim nächsten Aufruf von su wird der injizierte Stub als Root ausgeführt.
Die Datei auf dem Datenträger bleibt unverändert – File-Integrity-Monitoring
(Tripwire, Checksummen, auditd) meldet keinen Befund.
Achtung nach dem Test: Der vergiftete Page-Cache-Eintrag bleibt bis zum
expliziten Leeren oder Neustart bestehen. Jeder weitere su-Aufruf
auf der Maschine öffnet erneut eine Root-Shell:
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
Fix
Bis ein offizieller Kernel-Patch für die verwendete Distribution verfügbar ist, können die verwundbaren Module deaktiviert werden. Kein Neustart erforderlich. Die Mitigation ist identisch mit der für Dirty Frag – wer sie bereits angewendet hat, ist auch gegen Fragnesia geschützt.
- Module dauerhaft deaktivieren und sofort entladen
sudo sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' \ > /etc/modprobe.d/fragnesia.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"
- Mitigation prüfen (keine Ausgabe = Module nicht geladen = geschützt)
lsmod | grep -E 'esp4|esp6|rxrpc'
- Page Cache leeren (falls Exploit möglicherweise bereits ausgeführt wurde)
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
Hinweis: Das Leeren des Page Cache entfernt nur die vergiftete In-Memory-Kopie. Falls ein Angreifer bereits Root erlangt und eine Backdoor installiert hat, ist das System als vollständig kompromittiert zu behandeln.
Nach einem verfügbaren Kernel-Update:
- Debian / Ubuntu
apt update && apt upgrade
- Rocky Linux / RHEL / AlmaLinux / Fedora
dnf update
Kernel-Version nach dem Update prüfen:
uname -r
Verhältnis zu Dirty Frag und Copy Fail
Alle drei Lücken nutzen denselben Page-Cache-Corruption-Mechanismus:
| CVE | Name | Entdeckt | Modul(e) | Besonderheit |
|---|---|---|---|---|
| CVE-2026-31431 | Copy Fail | ~29. April 2026 | algif_aead |
In CISA KEV-Katalog; aktiv ausgenutzt |
| CVE-2026-43284 / CVE-2026-43500 | Dirty Frag | 7. Mai 2026 | esp4, esp6, rxrpc |
Zwei verkettete Bugs |
| CVE-2026-46300 | Fragnesia | 13. Mai 2026 | esp4, esp6, rxrpc |
Durch Dirty-Frag-Patch aktiviert |
Wer die Dirty-Frag-Mitigation (Blacklist esp4, esp6, rxrpc) bereits
angewendet hat, ist auch gegen Fragnesia geschützt – aber nicht automatisch gegen
Copy Fail (dort ist zusätzlich algif_aead relevant).