CVE-2026-98050
Beschreibung
Im Linux-Kernel wurde die folgende Sicherheitsanfälligkeit behoben: mlxsw: spectrum ptp: Fix napi gro receive() call from GC workqueue context Derzeit wird mlxsw sp1 ptp ht gc collect() aus der PTP garbage-collection workqueue und nicht aus dem NAPI poll context ausgeführt. Für alle nicht übereinstimmenden PTP-Einträge, die eine SKB tragen, wird mlxsw sp1 ptp unmatched finish() -> mlxsw sp1 ptp packet finish() aufgerufen. Bei Eingangspaketen wird mlxsw sp rx listener no mark func() aufgerufen. Das Ende dieser Funktion ist: skb->protokoll = eth type trans(skb, skb->dev); napi gro receive(mlxsw skb cb(skb)->rx md info.napi, skb); Der Napi-Pointer wurde im SKB-Steuerblock platziert, als das eingeschlossene Paket im NAPI-Kontext empfangen wurde. Später, wenn der GC den unübertroffenen Eintrag erntet (bis zu MLXSW SP1 PTP HT GC TIMEOUT später), mutiert der Aufruf von napi gro receive() die GRO-Liste der NAPI-Instanz, die unsicher ist, wenn die Umfrage gleichzeitig auf einer anderen CPU ausgeführt wird. In mlxsw sp1 ptp ht gc collect() wird local bh disable() aufgerufen, um Softirq-Verarbeitung zu verhindern, dies gilt jedoch nur für die lokale CPU. Darüber hinaus ist sein Kommentar abgestanden. Es gibt an, dass mlxsw sp1 ptp unmatched finish() netif receive skb() aufruft. Dies war seit dem referenzierten Commit nicht korrekt; Dieser Patch macht diesen Kommentar wieder korrekt. mlxsw pci napi devs init() ruft netif threaded enable() auf dem NAPI RX net device ohne Bedingungen auf. Die Umfrage der NAPI-Instanz, die möglicherweise gleichzeitig mit dem GC ausgeführt wird, läuft als unabhängig geplanter Kthread, der sich möglicherweise auf einer anderen CPU befindet. Der Aufruf von local bh disable() schützt nicht davor. Wenn ein tx-Timestamp-Timeout einen unübertroffenen Eintrag erzeugt (der leicht reproduziert werden kann, indem man ptp4l ausführt und darauf wartet, dass ein Port den Zustand UNCALIBRATED / SLAVE erreicht), während sich der besitzende NAPI-Thread mitten in einer Umfrage auf einer anderen CPU befindet, mutieren beide Seiten gleichzeitig die GRO-Liste, wie unten gezeigt: [39.846] Port 1 (swp1): MASTER to UNCALIBRATED auf RS SLAVE list add corruption. next->prev sollte prev sein (ffff8d620faf4138), war aber ffff8d624150f700. (next=ffff8d620faf4138). Kernel BUG unter lib/list debug.c:29! Ups: ungültiger Opcode: 0000 [#1] SMP PTI CPU: 1 UID: 0 PID: 539 Comm: napi/mlxsw rx-0 Nicht verdorben 6.18.48 #1-NixOS PREEMPT(faul) Hardwarename: Mellanox Technologies Ltd. MSN2410/VMOD0001, BIOS 4.6.5 09/13/2018 RIP: 0010: list add valid or report+0x79/0xb0 RSP: 0018:ffffcdf8c0f27c08 EFLAGS: 00010246 RAX: 0000000000000075 RBX: 0000000000000000 RDX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8d620faf4070 R08: 0000000000000000 R09: 00000000fffff8c0f27f8 R12: 00000000003d R14: 00000001bc R15: 000000000000000(0000) GS:ffff8d636f63f000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 00000000800c24 CR3: 000000015a60c24 CR4: gro receive skb+0xee/0x230 mlxsw
Quellen & weiterführende Informationen
Hier werden ausschließlich tatsächlich zu dieser Schwachstelle gespeicherte Quellenbelege angezeigt.
Was ist zur Behebung zu tun?
Herstellerhinweise prüfen und das betroffene Produkt kurzfristig patchen oder kompensierende Schutzmaßnahmen aktivieren.
Empfohlene Schritte
- Betroffene Systeme identifizieren: linux linux kernel.
- Exposition prüfen: Internet-Erreichbarkeit, Admin-Oberflächen, VPN, Mail- oder Webdienste.
- Hersteller-Advisory öffnen und verfügbare Updates, Workarounds oder Deaktivierungen prüfen.
- Nacharbeiten dokumentieren: betroffene Assets, Maßnahme, Zeitpunkt, Restrestrisiko.
Übergangsmaßnahmen
- Zugriff auf betroffene Dienste auf vertrauenswürdige Netze einschränken.
- WAF/IDS/EDR-Regeln und Hersteller-IOCs aktivieren, sofern verfügbar.
- Nicht benötigte Funktionen, Plugins oder Dienste temporär deaktivieren.