CVE-2026-93048
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
mtd: część: odrzuć MTDPART_OFS_RETAIN w mtd_add_partition()
mtd_add_partition() nie odrzuca specjalnej wartości przesunięcia
MTDPART_OFS_RETAIN (-3), co prowadzi do WARN_ON w
add_mtd_device() po wywołaniu przez ioctl BLKPG na NAND
urządzenia. Wartość RETAIN zależy od tego, czy cur_offset jest końcem
poprzedniej partycji, ale w ścieżce partycji dynamicznej
cur_offset jest równy samemu argumentowi przesunięcia, powodując niezdefiniowanie
zachowanie.
Zatwierdź 5daa7b21496a („mtd: przygotuj funkcje dodawania i usuwania partycji
dla żądań ioctl”) wprowadził mtd_add_partition() i poprawnie
odrzucono MTDPART_OFS_APPEND (-1) i MTDPART_OFS_NXTBLK (-2),
ponieważ te specjalne przesunięcia opierają się na śledzeniu cur_offset
koniec poprzedniej partycji. Jednakże zatwierdź 1a31368bf92e („mtd: dodaj flagę
dla partycji, które powinny po prostu coś zostawić. po nich")
później dodano MTDPART_OFS_RETAIN (-3) dla statyki
ścieżka tabeli partycji bez aktualizacji mtd_add_partition() do
również odrzuć tę wartość.
Przy przesunięciu = -3 przekazywanym przez BLKPG, obliczenie rozmiaru RETAIN w
allocate_partition() niedomiarów (parent_size - 0xFFFFFFFFFFFFFFD
= rozmiar_rodzica + 3). Jeśli wynik niedopełnienia nie pojawia się
zostaw wystarczająco dużo miejsca, allocate_partition() przeskakuje do out_register via
goto, pomijając inicjalizację kasowania rozmiaru. Powoduje to
erasize=0, co wyzwala:
WARN_ON((!mtd->kasujrozmiar || !master->_kasuj) &&
!(mtd->flagi i MTD_NO_ERASE))
w add_mtd_device(). Jeśli wynik niedomiaru wydaje się znikać
wystarczająco dużo miejsca, obliczany jest fałszywy rozmiar partycji, ale plik
Kontrola poprawności „poza zasięgiem” wyłapuje nieprawidłowe przesunięcie i
zamiast tego tworzy wyłączoną pustą partycję (offset=0, size=0).
zwrócenia błędu.
Napraw to, dodając MTDPART_OFS_RETAIN do listy odrzuconych w
mtd_add_partition(), zgodne z istniejącą obsługą
DOŁĄCZ i NXTBLK.
>_ Referencje
- https://git.kernel.org/stable/c/181c1bff940e7d3e34ca485d37e3cdbfe409203c
- https://git.kernel.org/stable/c/398aca2f90122d5abbabff1079deaeb885fe9e40
- https://git.kernel.org/stable/c/6aaab2ace3f7b55733d904e5549acf8405f03642
- https://git.kernel.org/stable/c/701c3ae7273e1adc20db5d97c42e0139b479f16b
- https://git.kernel.org/stable/c/a536eb57be58442b19398b2783071007ecfb1735
- https://git.kernel.org/stable/c/b759d5bb6265419344ee9729fd0dc07ad85719d8
- https://git.kernel.org/stable/c/c645f6dd1af2ecc70fd3578e141f2f71fa9e4eff
- https://git.kernel.org/stable/c/e204e5c49a012f99638633fdbd773e3c86260053
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