CVE-2026-53266HighCVSS: 8.8Linux-Kernel: Schwachstelle in netfilter ebtables SNAT (CVE-2026-53266)
Im Linux-Kernel wurde eine Schwachstelle mit CVSS 8.8 im netfilter-Bridge-Modul ebt_snat behoben. Durch fehlende Prüfung der Schreibbarkeit beim ARP-Umschreiben konnten nichtlineare Socket-Buffer manipuliert und fremde Speicherseiten überschrieben werden. Betreiber sollten umgehend auf die bereitgestellten stabilen Kernel-Versionen aktualisieren.
METADATEN
- Entdeckt:
- 25.06.2026
- Patch verfügbar:
- Ja
BETROFFENE SYSTEME
- •Linux Kernel 5.4.73 bis vor 5.5
- •Linux Kernel 5.8.17 bis vor 5.9
- •Linux Kernel 5.9.2 bis vor 5.10
- •Linux Kernel 5.10 bis vor 5.10.259
- •Linux Kernel 5.15 bis vor 5.15.210
- •Linux Kernel 6.1 bis vor 6.1.176
- •Linux Kernel 6.6 bis vor 6.6.143
- •Linux Kernel 6.12 bis vor 6.12.94
- •Linux Kernel 6.18 bis vor 6.18.36
- •Linux Kernel 7.0 bis vor 7.0.13
- •Linux Kernel 7.1
Zusammenfassung
In der Linux-Kernel-Komponente netfilter bridge (ebtables SNAT-Target ebt_snat) wurde eine Schwachstelle mit dem Schweregrad Hoch (CVSS 8.8, CVE-2026-53266) behoben. Beim optionalen Umschreiben der ARP-Sender-Hardwareadresse wurde der betroffene Speicherbereich nicht als beschreibbar sichergestellt, wodurch über skb_store_bits() in nichtlineare Fragmente mit per splice importierten Dateiseiten geschrieben werden konnte. Dies kann zu Speicherverfälschung, Denial-of-Service oder potenziell zur Privilegieneskalation führen. Für alle unterstützten stabilen Kernel-Zweige stehen Patches bereit.
Technische Details
Betroffen ist die Funktion des ebtables SNAT-Targets für Bridges. Das Umschreiben der Ethernet-Quelladresse ist bewusst nur mit skb_ensure_writable(skb, 0) abgesichert, da an den Bridge-ebtables-Hooks skb->data auf die Ethernet-Nutzdaten zeigt und eine Prüfung mit ETH_HLEN den falschen Bereich prüfen und die mit Commit 63137bc5882a behobene Regression bei kleinen Paketen wieder einführen würde.
Das optionale Umschreiben der ARP-Sender-Hardwareadresse (SHA) erfolgt abweichend über skb_store_bits() mit Offset relativ zu skb->data:
skb_store_bits(skb, sizeof(struct arphdr), info->mac, ETH_ALEN)
skb_header_pointer() liest den ARP-Header zwar sicher, macht den dahinterliegenden SHA-Bereich aber nicht beschreibbar. Liegt dieser Bereich noch in einem nichtlinearen skb-Fragment, das auf einer per splice importierten Dateiseite basiert, mappt skb_store_bits() die Fragmentseite und kopiert die neue MAC-Adresse direkt in diese fremde Seite.
Der Fix stellt sicher, dass der ARP-SHA-Bereich vor dem Lesen des ARP-Headers und vor dem Aufruf von skb_store_bits() als beschreibbar (linearisiert / kopiert) vorliegt. CVE-ID: CVE-2026-53266, CVSS 8.8, Hersteller: Linux, Komponente: netfilter: bridge: ebt_snat.
Betroffene Systeme
- Linux Kernel 5.4.73 bis vor 5.5
- Linux Kernel 5.8.17 bis vor 5.9
- Linux Kernel 5.9.2 bis vor 5.10
- Linux Kernel 5.10 bis vor 5.10.259
- Linux Kernel 5.15 bis vor 5.15.210
- Linux Kernel 6.1 bis vor 6.1.176
- Linux Kernel 6.6 bis vor 6.6.143
- Linux Kernel 6.12 bis vor 6.12.94
- Linux Kernel 6.18 bis vor 6.18.36
- Linux Kernel 7.0 bis vor 7.0.13
- Linux Kernel 7.1
- Systeme mit aktivem ebtables und Bridge SNAT-Regeln mit ARP-Rewrite, insbesondere Router, Firewalls, Virtualisierungs-Hosts und Container-Hosts
Empfehlungen und Maßnahmen
- Umgehend auf die korrigierten stabilen Versionen aktualisieren: mindestens 5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.94, 6.18.36, 7.0.13 oder neuer.
- Distributions-Updates einspielen (Debian, Ubuntu, RHEL, SUSE, etc.) sobald verfügbar und Systeme neu starten.
- Falls kein sofortiges Update möglich: ebtables SNAT-Regeln mit ARP-Umschreiben prüfen und wenn möglich temporär deaktivieren sowie Bridge-Filterverkehr einschränken.
- Systeme auf Anzeichen von Kernel-Oops, Speicherkorruption oder unerwarteten MAC-Änderungen überwachen.
- Nur vertrauenswürdige lokale Nutzer und Container zulassen, da zur Ausnutzung speziell geformte Pakete über die Bridge erforderlich sein können.
Quellen
- https://git.kernel.org/stable/c/bf84ad7c7a9ede46e31afaa41a1ba06a159e8c87
- https://git.kernel.org/stable/c/76280b78cc9f23bdc6438e10ad6dff148ef8375b
- https://git.kernel.org/stable/c/b7e91939ba9be805a62a257fa4e227dffbb88fa0
- https://git.kernel.org/stable/c/afd64b59c3de9bbbdd3759e834fdc55cda716e0b
- https://git.kernel.org/stable/c/153ea96c806aea395daba907a4f88480b6ad5093
- https://git.kernel.org/stable/c/b18675263db1147c8e1cab625400c13a0d87bd2d
- https://git.kernel.org/stable/c/c9b5ff59feffb92a147a84a5aa28acd2cb8ff4c5
- https://git.kernel.org/stable/c/67ba971ae02514d85818fe0c32549ab4bfa3bf49
REFERENZEN
- https://git.kernel.org/stable/c/bf84ad7c7a9ede46e31afaa41a1ba06a159e8c87
- https://git.kernel.org/stable/c/76280b78cc9f23bdc6438e10ad6dff148ef8375b
- https://git.kernel.org/stable/c/b7e91939ba9be805a62a257fa4e227dffbb88fa0
- https://git.kernel.org/stable/c/afd64b59c3de9bbbdd3759e834fdc55cda716e0b
- https://git.kernel.org/stable/c/153ea96c806aea395daba907a4f88480b6ad5093
- https://git.kernel.org/stable/c/b18675263db1147c8e1cab625400c13a0d87bd2d
- https://git.kernel.org/stable/c/c9b5ff59feffb92a147a84a5aa28acd2cb8ff4c5
- https://git.kernel.org/stable/c/67ba971ae02514d85818fe0c32549ab4bfa3bf49