Odebrany

CVE-2026-89958

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

s390/vfio-ap: Napraw dereferencję matrix_mdev->kvm bez sprawdzania NULL

Struktura ap_driver ma dwa pola, na które są wskaźnikami funkcji
wywołania zwrotne:

* .on_config_changed: wywoływany na początku funkcji skanowania magistrali AP
powiadom sterownik urządzenia, że punkt dostępowy hosta
konfiguracja uległa zmianie i powiązany punkt dostępowy
urządzenia zostaną odpowiednio dodane lub usunięte. To
daje realizującemu szansę na ocenę
zmiany konfiguracji i reaguj na nie wcześniej
powiązane urządzenia zostaną dodane lub usunięte.

* .on_scan_complete: Wywoływany na końcu funkcji skanowania magistrali AP
powiadom sterownik urządzenia, że punkt dostępowy hosta
konfiguracja uległa zmianie, podobnie jak urządzenia AP
odpowiednio dodane lub usunięte. To daje
realizatorowi możliwość ustosunkowania się do
zmiany po dodaniu powiązanych urządzeń lub
usunięte.

Te dwa wywołania zwrotne są zaimplementowane w sterowniku urządzenia vfio_ap poprzez
odpowiednio funkcje vfio_ap_on_cfg_changed i vfio_ap_on_scan_complete.

W stosie wywołań tych dwóch funkcji wywołania zwrotnego
matrix_mdev->kvm->lock mutex jest pobierany bez sprawdzania, czy
matrix_mdev->kvm ma wartość NULL lub nie. Jeżeli matrix_mdev->kvm nie została nigdy ustawiona,
próba przejęcia blokady spowoduje wyłuskanie wskaźnika NULL. Ta łatka
dodaje kontrole matrix_mdev->kvm == NULL przed wykonaniem
matrix_mdev->kvm->zablokuj mutex.

Należy zauważyć, że muteks matrix_mdev->kvm->lock pobrany z pliku
Funkcja vfio_ap_mdev_hot_plug_config została przeniesiona do funkcji wywołującej
wraz z matrix_dev->mdevs_lock, który jest tam potrzebny, aby uzyskać dostęp
pola matrix_mdev. Wprowadzanie zmian nie ma większego sensu
sprawdź tam matrix_mdev->kvm przed skorzystaniem z kvm->lock
mutex tylko po to, aby przenieść go przez inną łatkę, więc jest to zrobione
tę poprawkę.

Ważne jest, aby zwrócić uwagę na następujące kwestie:
1. Matrix_dev->guests_lock jest pobierany na początku obu wywołań zwrotnych
funkcje. Gwarantuje to, że matrix_mdev nie zostanie usunięty przez plik
vfio_ap_mdev_remove, ponieważ ona również wymaga matrix_dev_guests_lock
przed usunięciem obiektu; więc matrix_mdev będzie dostępny dla
czas trwania funkcji wywołania zwrotnego.

2. Aby uzyskać dostęp, należy pobrać muteks matrix_dev->mdevs_lock
pola w strukturze matrix_mdev

3. matrix_mdev->kvm->lock mutex musi zostać wzięty przed
matrix_dev->mdevs_lock, aby zapobiec blokadzie.

4: Podczas podłączania konfiguracji AP gościa należy trzymać blokadę kvm->
do opisu stanu SIE poprzez plik vfio_ap_mdev_update_guest_apcb
funkcja.

5. vfio_ap_mdev_update_guest_apcb sprawdza matrix_mdev->kvm, aby to zweryfikować
nie ma wartości NULL przed wykonaniem podłączania podczas pracy konfiguracji AP gościa.

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