CVE-2026-98616
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
eth: fbnic: reset num_napi, gdy wektory napi zostaną zwolnione
fbn->num_napi to liczba żywych wektorów napi, z których każdy jest właścicielem
Przerwanie. Ścieżka PM uwolniła ich bez wyczyszczenia licznika.
fbnic_pm_suspend() przerywa ścieżkę danych za pomocą ndo_stop() i zwalnia plik
Przerwania, ale pozostawia funkcję netif_running() true, więc CV wie, że ma zostać ponownie otwarte. Wznów
odbudowuje ścieżkę danych w zestawach __fbnic_pm_resume() i fbnic_reset_queues()
num_napi i __fbnic_open() ponownie przydzielają wektory.
Kiedy ścieżka danych zostanie zniszczona, ale nigdy nie zostanie odbudowana, pozostaje num_napi
wskazując na uwolnione wektory w 2 różnych scenariuszach:
- odzyskiwanie po błędzie PCIe, które nie powiodło się (fbnic_err_slot_reset() ->
__fbnic_pm_resume() zwraca błąd -> PCI_ERS_RESULT_DISCONNECT), więc
.resume nigdy nie działa; lub
- __fbnic_open(), która częściowo kończy się niepowodzeniem przy wznowieniu i rozwija się, uwalniając
wektory po tym, jak fbnic_reset_queues() ustawiły już num_napi.
Netdev działa wtedy z num_napi > 0, ale napi[] jest zwolniony i plik
ewentualne usunięcie/rozwiązanie zamknięcia powoduje ponowne wejście do fbnic_down() -> fbnic_dbg_down()
i dereferuje uwolnione wektory:
BŁĄD: wyłuskiwanie wskaźnika NULL jądra, adres: 0000000000000210
RIP: fbnic_dbg_down+0x28
Wyczyść num_napi, gdy wektory zostaną uwolnione: w procesie zawieszenia (a
dobre CV przywraca je przed __fbnic_open()) i w CV
otwarta awaria. Następnie nadmiarowa funkcja ndo_stop() przechodzi przez pustą napi[]. The
normalny cykl w dół/w górę ndo_stop() pozostaje niezmieniony i utrzymuje num_napi przez
następny ndo_open().
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org