CVE-2026-72444 in Linuxinfo

Zusammenfassung

von VulDB • 16.08.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

flow_dissector: Überprüfung des Gerätetyps vor dem Lesen von ETH_ADDRS

__skb_flow_dissect() liest bedingungslos 12 Bytes aus eth_hdr(skb), wenn FLOW_DISSECTOR_KEY_ETH_ADDRS angefordert wird. Dabei wird angenommen, dass das skb einen gültigen Ethernet-Header an mac_header enthält, was jedoch nicht immer der Fall ist.

Das Problem kann durch folgende Schritte ausgelöst werden: 1. Erstellen eines TUN-Geräts im L3-Modus (IFF_TUN, hard_header_len=0) 2. Anhängen einer multiq-qdisc mit einem Flower-Filter, der auf eth_src matchet 3. Senden eines Pakets über AF_PACKET

Da ein TUN-Gerät im L3-Modus keinen Link-Layer-Header besitzt, zeigt mac_header in den L3-Datenbereich. Der Flow-Dissector liest 12 Bytes nicht initialisierten skb-Speichers, der anschließend durch fl_set_masked_key() propagiert und als rhashtable-Schlüssel für die Suche in __fl_lookup() verwendet wird, wie von KMSAN gemeldet wurde.

Das Zurückweisen des Filters im Kontrollpfad (zum Zeitpunkt tc filter add) ist nicht praktikabel, da TC-Filterblöcke zwischen beliebigen Geräten geteilt werden können – ein auf einem Ethernet-Gerät installierter Filter kann später Pakete auf einem geräte ohne Header durch einen gemeinsamen Block klassifizieren. Die Gerätezuordnung wird zum Erstellungszeitpunkt des Filters nicht festgelegt.

Behoben wird dies durch eine Bedingung für den memcpy basierend auf dev->type == ARPHRD_ETHER, die sicherstellt, dass nur echte Ethernet-geframe-te Pakete ihre Adressen lesen. Dies ist präziser als die vorherige Prüfung hard_header_len >= 12, die fälschlicherweise auch bei Nicht-Ethernet-Link-Typen wie IPoIB (ARPHRD_INFINIBAND, hard_header_len=24) und FDDI (hard_header_len=21), deren L2-Headers nicht im Ethernet-Format vorliegen, bestanden hätte. Zusätzlich wird skb_mac_header_was_set() geprüft, um den pathologischen Fall abzufangen, in dem mac_header der ungesetzte Sentinel (~0U) ist, was dazu führen würde, dass eth_hdr() einen wilden Zeiger zurückgibt.

Für den act_mirred-Umleitungsfall (Ethernet-Paket wird auf ein Nicht-Ethernet-Gerät umgeleitet, das denselben TC-Block teilt), ist das Nullsetzen des Schlüssels das korrekte Verhalten: Das Paket wird nun am Zielgerät klassifiziert, wo die Übereinstimmung von Ethernet-Adressen semantisch nicht sinnvoll ist.

Hinweis: Auf Nicht-Ethernet-Geräten wird der auf Null gesetzte Schlüssel mit einem Filter übereinstimmen, der für alle MAC-Adressen null konfiguriert wurde. Dies stellt eine Verbesserung gegenüber dem vorherigen Verhalten dar, bei dem uninitialisierter Speicher zufällig mit jedem beliebigen Filter hätte übereinstimmen können.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Zuständig

Linux

Reservieren

09.08.2026

Veröffentlichung

15.08.2026

Moderieren

akzeptiert

Eintrag

VDB-390707

CPE

bereit

EPSS

0.00180

KEV

nein

Aktivitäten

low

Quellen

Interested in the pricing of exploits?

See the underground prices here!