CVE-2026-90048
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
fs/ntfs3: napraw zapis płyty poza granicami w ni_create_attr_list()
ni_create_attr_list() przydziela stały bufor al_aligned(record_size)
(== record_size) bajtów, a następnie przegląda każdy atrybut podstawowej tablicy MFT
rekord, wpisując jeden ATTR_LIST_ENTRY na atrybut i przesuwając kursor
przez le_size(name_len), bez sprawdzania końca bufora; the
całkowity rozmiar jest obliczany dopiero po pętli.
Atrybut rezydentny o minimalnym rozmiarze zajmuje SIZEOF_RESIDENT (0x18 = 24)
bajtów na dysku, ale nienazwany atrybut rozwija się do le_size(0) (0x20 = 32)
bajtów na liście. Ponieważ liczba atrybutów w rekordzie nie jest
bounded(mi_enum_attr() akceptuje dowolnie wiele typów jednakowych, bezimiennych
atrybuty o minimalnym rozmiarze), spreparowany rekord pełen takich atrybutów
tworzy listę większą niż rozmiar_rekordu i przepełnia bufor sterty.
Można to osiągnąć ze spreparowanego, zamontowanego w pętli obrazu NTFS: otwarcie pliku
i dodanie atrybutu (np. poprzez setxattr) steruje ntfs_set_ea() ->
ni_insert_resident() -> ni_insert_attr() -> ni_ins_attr_ext() ->
ni_create_attr_list().
BŁĄD: KASAN: płyta poza granicami w ni_create_attr_list+0xc48/0x1058
Zapisz rozmiar 4 pod adresem ffff000008984c00 za pomocą zadania setfattr/345
ni_create_attr_list+0xc48/0x1058
ni_ins_attr_ext+0x510/0x7c0
ni_insert_attr+0x3f8/0x70c
ni_insert_resident+0xc8/0x3b0
ntfs_set_ea+0x66c/0xd28
ntfs_setxattr+0x4d8/0x5b0
__arm64_sys_setxattr+0xa4/0x124
Przydzielone przez zadanie 345:
ni_create_attr_list+0x188/0x1058
Błędny adres należy do pamięci podręcznej kmalloc-1k o rozmiarze 1024
(zapis ląduje na obiekcie+1024).
Dostosuj rozmiar bufora na podstawie rzeczywistych atrybutów, zamiast zakładać pojedynczy
record_size zawsze wystarczy.
>_ Referencje
- https://git.kernel.org/stable/c/7c4841e2a62794a3bab7c1ff0540580f387e377f
- https://git.kernel.org/stable/c/7e9aee7e4d9767cc3e423b3beecb01c7ebb6bbcd
- https://git.kernel.org/stable/c/a84f3db72561c4d9281c5ff721ce46b9ffa7f30e
- https://git.kernel.org/stable/c/d07e281f2a7710502985d6f80b95ddac8f4e81d5
- https://git.kernel.org/stable/c/fa2215cf451414b0512cd6f7d37a057893811f4d
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