CVE-2026-89596
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
Forceeth: naprawa off-by-one podczas zapisywania/przywracania przestrzeni konfiguracyjnej innej niż PCI
nv_suspend() i nv_resume() przechodzą przez przestrzeń konfiguracyjną inną niż PCI
for (i = 0; i <= np->rozmiar_rejestru/rozmiar(u32); i++)
który uruchamia o jedną iterację za dużo. save_config_space jest zadeklarowany jako
u32 zapisana przestrzeń_konfiguracji [NV_PCI_REGSZ_MAX/4];
i NV_PCI_REGSZ_VER3 jest równe NV_PCI_REGSZ_MAX (0x604), więc w wersji VER3
urządzenie Register_size/sizeof(u32) to dokładnie długość tablicy i ostatnia
iteracja dotyczy jednego elementu za końcem.
Element, na którym się znajduje, to np->name_rx[0..3]: save_config_space[] to
po którym następuje bezpośrednio znak nazwa_rx[IFNAMSIZ + 3] i znak potrzebuje nr
wyściółka. Nic, co można zaobserwować, nie jest przez to zepsute, ponieważ nv_request_irq()
przepisuje nazwę_rx za pomocą sprintf(), zanim zostanie ona kiedykolwiek przekazana do request_irq().
Błąd polega na samym dostępie poza granicami, który raportuje UBSAN i który
CONFIG_UBSAN_TRAP=y zamienia się w pułapkę przerywającą działający kod jądra,
plus odczyt MMIO i, po wznowieniu, zapis MMIO() do bazy + 0x604, jeden
dword poza zakresem zamapowanym przez sterownik:
np->base = ioremap(addr, np->rozmiar_rejestru);
Urządzenia VER1 i VER2 pozostają wewnątrz tablicy, ale one również dostają błąd
czytaj, a bezpański napisz jeden dword za swoim własnym oknem.
Złapany przez UBSAN na komputerze Apple Macmini3,1 (MCP79) podczas głębokiego cyklu S3.
Poniższa ikona została przycięta: ścieżka kompilacji w nazwie pliku, procesor
i linie skażenia, linia Workqueue, znak „?” ramki podpowiedzi i
wszystkie ramki poniżej urządzenia_suspend są wycięte. Jądro zostało skażone
secesja poza drzewem i CPU_OUT_OF_SPEC; wymuszone samo było
moduł magazynowy.
UBSAN: indeks tablicy poza zakresem w sterownikach/net/ethernet/nvidia/forcedeth.c:6225:25
indeks 385 jest poza zakresem dla typu „u32 [385]”
Zadzwoń do śledzenia:
dump_stack_lvl+0x5d/0x80
ubsan_epilog+0x5/0x2b
__ubsan_handle_out_of_bounds.cold+0x54/0x59
__this_module+0xe398c/0xe9010 [forcedeth]
pci_pm_suspend+0x80/0x170
dpm_run_callback+0x51/0x160
urządzenie_suspend+0x1a2/0x4a0
...
Obie pętle są trafione. UBSAN zgłasza każdą lokalizację źródłową tylko raz na moduł
loading (__ubsan_handle_out_of_bounds() wywołuje funkcję supres_report(), która to robi
test_and_set_bit(REPORTED_BIT, ...) w strukturze lokalizacja_źródła), więc
dwie ikony lądują w pierwszym cyklu S3 po załadowaniu modułu i później
cykle są ciche, mimo że dostęp za każdym razem kończy się.
W tym pierwszym cyklu linia 6225 jest zgłaszana z pci_pm_suspend i linia 6240
z pci_pm_resume.
Ten sam błąd off-by-one został naprawiony w nv_get_regs() poprzez zatwierdzenie ba9aa134287f
(„forcedeth: napraw przepełnienie bufora”) w 2012 r.; te dwie pętle zostały pominięte.
O zawieszeniu i wznowieniu pracy poinformował w LKML we wrześniu 2013 r. Marc
Weber, z tą samą analizą i tą samą poprawką dotyczącą jednego znaku, ale z łatką
został dołączony, a nie przesłany bezpośrednio i na tym wątek się zakończył.
Użyj < zamiast <=, co zapisuje i przywraca dokładnie bajty dotyczące rozmiaru rejestru.
>_ 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