CVE-2026-98682
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
smb: klient: opróżnij i unieważnij przed kopiowaniem/klonowaniem po stronie serwera
cifs_file_copychunk_range() i ścieżkę klonowania (FICLONE).
cifs_remap_file_range() nie serializuje pamięci podręcznej strony docelowej
przeciwko kopii po stronie serwera w taki sam sposób, jak inny zakres po stronie serwera
operacje (smb3_zero_range(), smb3_punch_hole(), smb3_collapse_range()
i smb3_insert_range()) tak.
cifs_file_copychunk_range() unieważnia zakres docelowy za pomocą
filemap_invalidate_inode(), która pobiera i usuwa mapowania
validate_lock wewnętrznie, więc blokada nie jest już utrzymywana, gdy
Wydano copychunk ioctl. Nigdy też nie wyczerpuje wejść/wyjść sieciowych w locie
cel. Ścieżka klonowania nigdy w ogóle nie przyjmuje validate_lock (tylko
i_rwsem), używa gołej funkcji truncate_inode_pages_range() i podobnie nie
opróżnij zaległe wejścia/wyjścia.
W rezultacie asynchroniczne docelowe zapisywanie zwrotne może zostać zakończone po
Kopia/klon po stronie serwera została uruchomiona i przywróciła nieaktualne dane w regionie
właśnie napisany przez serwer, uszkadzając plik. To jest ta sama klasa
korupcji jako zatwierdzenie d7d2adcd022b („smb/klient: opróżnij brudne dane
przed wybiciem dziury”) i był widziany losowo w Generic/363
przeciwko Windows Serverowi.
Napraw obie ścieżki, aby zachować ustaloną kolejność: przytrzymaj cel
mapowanie validate_lock poprzez kolor i unieważnienie
miejsce docelowe i serwer ioctl i wywołaj funkcję netfs_wait_for_outstanding_io()
na celu, aby opróżnić zapisy w locie przed wydaniem ioctl. Tylko
wymagana jest blokada_blokady docelowego i-węzła, ponieważ jest to jedynie źródło
przepłukane i nie unieważnione; i_rwsem (już przetrzymywany przez
lock_two_nondirectories()) jest uzyskiwane przed unieważnieniem_blokady,
zgodnie z kolejnością zamków VFS. Ponieważ filemap_invalidate_inode() przyjmuje
tę samą blokadę wewnętrznie, zastąp ją własną unmap/flush/invalidate
kroki, zamiast je wywoływać, i wróć wcześniej z kopią o zerowej długości
uniknąć przekroczenia zakresu.
>_ 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