Odebrany

CVE-2026-89722

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

W jądrze Linuksa usunięto następującą lukę:

PCI/sysfs: Napraw odczyt poza granicami w pci_write_legacy_io()

pci_write_legacy_io() ładuje 4 bajty z bufora zapisu kernfs
niezależnie od tego, ile bajtów napisała przestrzeń użytkownika:

jeśli (policz!= 1 && policz!= 2 && policz!= 4)
zwróć -EINVAL;

return pci_legacy_write(bus, off, *(u32 *)buf, count);

kernfs_fop_write_iter() przydziela bufor za pomocą kmalloc(len + 1),
więc 1-bajtowy zapis do pliku Legacy_io sysfs przydziela 2 bajty i
bezwarunkowe ładowanie u32 odczytuje do 2 bajtów po końcu
przydziału, który KASAN raportuje jako odczyt płyty poza zakresem.
Podobnie zapis 2-bajtowy powoduje nadczytanie o 1 bajt.

Zatem odczytaj tylko żądaną liczbę bajtów za pomocą funkcji get_unaligned_le16()
i get_unaligned_le32() dla przypadków 2 i 4 bajtowych, interpretując
bufor jako small-endian, aby dopasować kolejność bajtów portu we/wy PCI
przestrzeń.

Implementacja PowerPC poprzednio kompensowała to rozwiązanie generyczne
obciążenie 32-bitowego kodu natywnego endian poprzez przesunięcie wartości na miejsce
dla przypadków 1 i 2 bajtowych. Przełożenia były prawidłowe tylko na
Jądra big-endian.

Na Little-endian PowerPC (POWER8 i nowsze) wyodrębnili błąd
bajtów, więc zapis 1-bajtowy zapisał bajt spoza zakresu zamiast
żądana wartość. Na big-endian obciążenie natywne spowodowało również out_le16()
i out_le32(), aby odwrócić bajty użytkownika na kablu na 2 i 4 bajty
pisze. Pomocnicy Little-endian rozwiązują oba problemy, więc zmiany
są usuwane.

Na platformie Alpha nie są potrzebne żadne zmiany.

Plik Legacy_io jest przeznaczony tylko dla administratora i istnieje tylko na komputerach Alpha i PowerPC,
dwie architektury definiujące HAVE_PCI_LEGACY.

>_ 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