Odebrany

CVE-2026-97416

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ę:

btrfs: saldo: napraw potencjalny błąd wyszukiwania bg w btrfs_may_alloc_data_chunk()

[BŁĄD]
Uruchomienie salda btrfs może wywołać deref zerowy-ptr przed przeniesieniem pliku
fragment danych, gdy uszkodzenie metadanych pozostawia fragment w drzewie fragmentów
bez odpowiedniej grupy bloków w pamięci podręcznej:

KASAN: null-ptr-deref w zakresie [0x0000000000000088-0x000000000000008f]
RIP: 0010:btrfs_may_alloc_data_chunk+0x40/0x1c0 fs/btrfs/volumes.c:3601
Zadzwoń do śledzenia:
__btrfs_balance fs/btrfs/volumes.c:4217 [w wierszu]
btrfs_balance+0x2516/0x42b0 fs/btrfs/volumes.c:4604
btrfs_ioctl_balance fs/btrfs/ioctl.c:3577 [w linii]
btrfs_ioctl+0x25cf/0x5b90 fs/btrfs/ioctl.c:5313
...

[PRZYCZYNA]
__btrfs_balance() iteruje drzewo fragmentów na dysku i przekazuje fragment
bajt logiczny do btrfs_may_alloc_data_chunk() przed przeniesieniem danych
kawałek. Następnie pomocnik wysyła zapytanie do pamięci podręcznej grupy bloków w pamięci:

pamięć podręczna = btrfs_lookup_block_group(fs_info, chunk_offset);
chunk_type = pamięć podręczna->flagi; /* pamięć podręczna może mieć wartość NULL */

Uszkodzony obraz może zawierać element fragmentu, którego odpowiada grupa bloków
brakuje elementu, więc do pamięci podręcznej nie jest nigdy wstawiana żadna grupa bloków. w
w tym przypadku btrfs_lookup_block_group() zwraca NULL.

Kod chroni to tylko za pomocą ASSERT(cache), co staje się niewykonalne, gdy
CONFIG_BTRFS_ASSERT jest wyłączony. Późniejsze lekceważenie
cache->flags powoduje zatem awarię jądra.

[POPRAWKA]
Dodaj kontrolę NULL po btrfs_lookup_block_group() w
btrfs_may_alloc_data_chunk() oraz wydrukuj i komunikat o błędzie dla przejrzystości.

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