CVE-2026-89586
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
ata: libata-scsi: napraw DSM TRIM dla sektorów większych niż 2048 bajtów
ata_scsi_write_same_xlat() tłumaczy polecenie SCSI WRITE SAME za pomocą
Bit UNMAP ustawiony w poleceniu ATA DATA SET MANAGEMENT TRIM. TRIM
deskryptor jest budowany przez ata_format_dsm_trim_descr() do 2048-bajtowego
ata_scsi_rbuf bufor pomostowy i porównywana jest liczba skopiowanych bajtów
względem rozmiaru sektora logicznego przez osobę wywołującą:
rozmiar = ata_format_dsm_trim_descr(scmd, trmax, block, n_block);
if (rozmiar != dł.) /* len == sdp->rozmiar_sektora */
przejdź do valid_param_len;
ata_format_dsm_trim_descr() ogranicza długość kopii do ATA_SCSI_RBUF_SIZE
(2048). Na urządzeniu, którego rozmiar sektora logicznego jest większy (np
urządzenie, gdzie rozmiar_sektora == 4096) funkcja nie może nigdy zwrócić więcej niż
2048, podczas gdy osoba wywołująca oczekuje, że zwróci sektor_size. Porównanie
dlatego zawsze kończy się niepowodzeniem, więc każdy TRIM jest odrzucany z „Listą parametrów
błąd długości” i ikony WARN_ON() przy każdej próbie. PRZYCINANIE / odrzucenie jest
w ten sposób całkowicie zepsuty na takich urządzeniach.
Deskryptor został nieprawidłowo dobrany na podstawie rozmiaru sektora logicznego. DSM
Ładunek TRIM to lista 512-bajtowych stron, z których każda może pomieścić do
ATA_MAX_TRIM_RNUM (64) Wpisy zakresu LBA i jest niezależny od logicznego
wielkość sektora. Strona VPD z limitami bloków reklamuje już jeden taki
stronę jako maksymalną długość WRITE SAME (65535 * ATA_MAX_TRIM_RNUM logiczne
bloki), więc warstwa bloków nigdy nie wysyła żądania, które wymaga więcej niż jednego
strona.
Emituj dokładnie jedną stronę 512-bajtową, niezależnie od rozmiaru sektora logicznego,
i przenieś tylko tę stronę (COUNT == 1). Dla urządzenia z sektorem 512 bajtów
to nie ulega zmianie; Zamiast tego działają teraz urządzenia z większymi sektorami logicznymi
zawodzi każdy TRIM.
>_ 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