CVE-2026-98906 in Linux
Zusammenfassung
von VulDB • 23.10.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
net: lan966x: Wiederherstellung des RX-Status bei einem Fehler beim Neuladen (Reload)
lan966x_fdma_reload() sichert rx->page_pool und rx->fdma, bevor die RX-Ressourcen für die neue MTU neu zugewiesen werden. Wenn die Zuweisung fehlschlägt, stellt der Wiederherstellungspfad diese Felder wieder her, bevor das RX-System erneut gestartet wird.
Der Neuladepfad aktualisiert jedoch auch rx->page_order und rx->max_mtu, bevor lan966x_fdma_rx_alloc() aufgerufen wird. Diese Felder werden im Fehlerfall nicht wiederhergestellt, sodass das RX-System mit den alten Seiten (pages), dem alten FDMA-Zustand und dem alten page_pool neu gestartet werden kann, jedoch mit der Seitengeometrie aus dem fehlgeschlagenen neuen MTU.
Dies kann dazu führen, dass der XDP-Pfad eine Rahmengröße (frame size) ankündigt, die von der neuen page_order abgeleitet ist, während die tatsächlichen RX-Seiten weiterhin aus der alten Zuweisung stammen. Nach einem gescheiterten Neuladen auf ein Jumbo-MTU kann beispielsweise xdp_init_buff() mit einer Rahmengröße aufgerufen werden, die größer als die wiederhergestellten RX-Seiten ist.
lan966x_fdma_rx_alloc_page_pool() registriert den neu zugewiesenen page_pool auch vor dem Aufruf von fdma_alloc_coherent() für das XDP-RXQ jedes Ports. Wenn fdma_alloc_coherent() fehlschlägt, wird der neue page_pool zerstört, aber der Rollback-Pfad stellt die Registrierung des pro-Port-XDP-RXQ-Speichermodells ebenfalls nicht wieder her.
Es werden rx->page_order und rx->max_mtu gespeichert und wiederhergestellt sowie die alte page_pool-Registrierung für das XDP-RXQ jedes Ports vor dem erneuten Starten von RX wiederhergestellt. Dies stellt sicher, dass der wiederhergestellte RX-Zustand nach einem fehlgeschlagenen Neuladen konsistent bleibt.
VulDB is the best source for vulnerability data and more expert information about this specific topic.