CVE-2026-98640
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
HID: amd_sfh: Sprawdź rozmiar PCI BAR przed mapowaniem
Sterownik amd_sfh mapuje PCI BAR 2 za pomocą pcim_iomap_regions() i
następnie uzyskuje dostęp do rejestrów MMIO z przesunięciem do 0x10958 (np.
AMD_P2C_MSG3 przy 0x1068C). Jednak kierowca nigdy nie sprawdza, czy plik BAR
rozmiar jest wystarczająco duży, aby pokryć te dostępy. Jeżeli kierowca jest zobowiązany do
urządzenie z mniejszym BAR 2, prowadzi to do dostępu do pamięci poza dopuszczalnym zakresem
oraz błąd strony podczas funkcji sondy.
Na przykład błąd strony może wystąpić podczas odczytu z privdata->mmio +
AMD_P2C_MSG3 w mp2_select_ops():
BŁĄD: nie można obsłużyć błędu strony dla adresu: ffffc9000390368c
PGD 100000067 P4D 100000067 PUD 1012c1067 PMD 105b64067 PTE 0
Ups: Ups: 0000 [#1] SMP KASAN NOPTI
RIP: 0010:readl arch/x86/include/asm/io.h:59 [w linii]
RIP: 0010:mp2_select_ops sterowniki/hid/amd-sfh-hid/amd_sfh_pcie.c:282
[w linii]
RIP: 0010:amd_mp2_pci_probe+0x337/0x5f0
sterowniki/hid/amd-sfh-hid/amd_sfh_pcie.c:487
Zadzwoń do śledzenia:
<ZADANIE>
local_pci_probe sterowniki/pci/pci-driver.c:332 [wbudowane]
pci_call_probe sterowniki/pci/pci-driver.c:394 [wbudowane]
__pci_device_probe sterowniki/pci/pci-driver.c:455 [wbudowane]
pci_device_probe+0x431/0xc90 sterowniki/pci/pci-driver.c:489
Napraw ten problem, sprawdzając, czy długość BAR 2 wynosiła wcześniej co najmniej 128 KB
próbując to zmapować. Ponieważ maksymalne dostępne przesunięcie to 0x10958, a PCI
Rozmiary BAR to potęgi liczby 2, każdy legalny sprzęt będzie miał rozmiar BAR wynoszący
co najmniej 128 KB.
>_ Referencje
- https://git.kernel.org/stable/c/5f9e2ecb725adced013fbf5f94b9f185fad2e7d9
- https://git.kernel.org/stable/c/5ff24aa7af0bca0780fe4e6effce902065f2c0a7
- https://git.kernel.org/stable/c/65bcc5f89704efe5b9d69d4ea2c1002d90c31382
- https://git.kernel.org/stable/c/7b3747d77767f066ccf4a9e8e3a8381643ab5368
- https://git.kernel.org/stable/c/92bf2883da0306ab9d1eb794acd1058fc5088ebc
- https://git.kernel.org/stable/c/dc687489131559ee52f447592f6d039a5a013061
- https://git.kernel.org/stable/c/ee25833f037fa22d23ffdbfeebabe3579e8a0346
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