
Eine Go-Implementierung von fragnesia (CVE-2026-46300)
Ein SA. Ein Byte nach dem anderen. Kein Wettlauf.
Go-Port von fragnesia (CVE-2026-46300). Mitglied der Dirty Frag-Schwachstellenklasse – eigener Fehler, gleiche Oberfläche, eigener Patch.
Der Fehler liegt im Linux-XFRM-ESP-in-TCP-Subsystem. Wenn TCP_ULP espintcp auf einem Socket installiert wird, nachdem Daten bereits per splice() von einer Datei in die TCP-Empfangsqueue übertragen wurden, behandelt der Kernel die queued Daten als ESP-Chiffretext-Record und entschlüsselt sie direkt am Ort. Die Quelle dieser Daten ist eine Page-Cache-Seite. Die Entschlüsselung XORt den AES-GCM-Schlüsselstrom direkt hinein.
Das Ergebnis ist ein kontrollierter Ein-Byte-Schreibzugriff in den Page-Cache jeder lesbaren Datei.
Schlüsselstromtabelle
Der AES-GCM (RFC 4106)-Counter-Block an Position 2 ist [salt(4) || IV(8) || 0x00000002]. Die Verschlüsselung mit dem Sitzungsschlüssel ergibt einen 16-Byte-Schlüsselstromblock. Byte 0 dieses Blocks wird in das Ziel-Byte XORiert. Durch Variieren der unteren 32 Bits der IV-Nonce sind alle 256 möglichen Schlüsselstrom-Byte-Werte innerhalb der ersten 65536 Nonces erreichbar. Der Exploit erstellt diese Lookup-Tabelle einmalig beim Start über AF_ALG AES-ECB.
Byte-Flip-Schleife
Für jedes Byte der Nutzlast:
benötigter_Schlüsselstrom = aktuell XOR gewünscht.TCP_ULP-Installation, bis die Daten in der Queue sind).aktuell XOR schlüsselstrom = aktuell XOR (aktuell XOR gewünscht) = gewünscht.Ein SA. Maximal 192 Trigger. Deterministisch.
go build -o fragnesia-go .
./fragnesia-go
Bei Erfolg wechselt es in eine Root-Shell über eine frische PTY. Die Binärdatei auf der Festplatte bleibt unberührt – nur Page Cache.
echo 1 | tee /proc/sys/vm/drop_caches
esp6 (Transportmodus, IPv6-Loopback)Alle Kernel vor dem Patch: https://lists.openwall.net/netdev/2026/05/13/79
Gleicher Bereich wie dirtyfrag.
Gleiche wie dirtyfrag:
rmmod esp4 esp6
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\n' \
> /etc/modprobe.d/fragnesia.conf
| dirtyfrag-go | fragnesia-go |
|---|
| CVEs | CVE-2026-43284 / CVE-2026-43500 | CVE-2026-46300 |
| Transport | ESP-in-UDP + RxRPC | ESP-in-TCP (ULP) |
| Schreibgranularität | 4 Bytes pro Trigger | 1 Byte pro Trigger |
| XFRM SAs | 48 | 1 |
| Verschlüsselung | HMAC-SHA256 + CBC-AES | AES-128-GCM |
| IP-Familie | IPv4 | IPv6 |