CVE-2026-99207
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
scsi: cel: Wyłącz przerwania, przytrzymując opóźniony_cmd_lock
target_do_delayed_work() pobiera dev->delayed_cmd_lock za pomocą zwykłego
spin_lock(). Działa z system_percpu_wq, więc przerwania pozostają włączone
podczas gdy zamek jest trzymany. Każde inne nabycie tego zamka wykorzystuje
spin_lock_irqsave(): target_handle_task_attr() i
transport_complete_ordered_sync() w target_core_transport.c i
target_non_ordered_release() w target_core_device.c.
Było to bezpieczne, dopóki każdy wywołujący funkcję transport_complete_task_attr() działał
w kontekście procesu: target_complete_ok_work() z target_completion_wq,
transport_complete_qf() z dev->qf_work_queue i
transport_generic_request_failure() ze ścieżek przesyłania i wykonywania.
Od zatwierdzenia 06933066d88a („scsi: target: Dodaj obsługę uzupełniania
polecenia z kontekstu zaplecza”), co nie jest już prawdą. Z
complete_type=1 na tkaninie, która ustawia direct_compl_supp,
target_complete() uruchamia funkcję target_complete_ok_work() inline w backendie
kontekst zakończenia, który target_complete_cmd_with_sense() dokumentuje jako
„Można wywołać z kontekstu przerwania”. W przypadku iblocka jest to biografia
koniec_io.
target_complete_ok_work() zaczyna się od transport_complete_task_attr(),
który przyjmuje opóźniony_cmd_lock na dwa sposoby:
- Każde polecenie ORDERED jest umieszczane na dev->delayed_cmd_list przez
target_handle_task_attr() i stamtąd wysyłane przez
target_do_delayed_work(), co oznacza, że jest to SCF_TASK_ORDERED_SYNC. Jego
dlatego zakończenie przechodzi przez transport_complete_ordered_sync().
- PROSTE polecenie, które kończy się w oczekiwaniu na polecenie ORDERED
usuwa ostatnie odniesienie do zabitego dewelopera->non_ordered i
percpu_ref_put() następnie uruchamia target_non_ordered_release() w pliku
uzupełnienie kontekstu.
Obaj biorą zamek i, jeśli polecenia czekają, zadzwoń
harmonogram_pracy(&dev->delayed_cmd_work), który ustawia się w kolejce na system_percpu_wq,
tj. na procesorze, który zakończył operację. Dalsze realizacje dla
ta sama kolejka jest zazwyczaj dostarczana tam również, więc jedna przybywa w trakcie
praca trzyma zamek, obraca się na nim na zawsze.
Osiągnięcie tego wymaga pełnego_typu = 1, co nie jest ustawieniem domyślnym
(vhost-scsi, jedyna tkanina z direct_compl_supp, domyślnie to
TARGET_QUEUE_COMPL), backend, którego operacje we/wy kończą się po przerwaniu
kontekst i polecenia ORDERED od inicjatora. Linux virtio_scsi
goście wysyłają tylko VIRTIO_SCSI_S_SIMPLE i nigdy nie podążają zamówioną ścieżką;
każdy gość korzystający z atrybutu zadania ORDERED, który vhost-scsi
akceptuje, robi.
target_do_delayed_work() jest elementem pracy i zawsze jest wykonywany
kontekście, więc spin_lock_irq() jest wystarczająca.
Znaleziono podczas kontroli; brak raportu wykonawczego. Zostaje wydane pojedyncze polecenie ORDERED
przez oba przejęcia, więc przy CONFIG_PROVE_LOCKING pierwszym
ukończone poprzez bezpośrednie uzupełnienie powinno spowodować niespójną blokadę
raport stanu dotyczący opóźnionego_cmd_locka (hardirq lub softirq, w zależności od tego, gdzie
backend zostanie ukończony).
>_ 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