CVE-2022-50202
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: PM: hibernate: hazırda bekletmeden geri dönerken cihaz sorgulamasını ertele syzbot, probe_count değişkenini içeren bir AB-BA deadlock yarış penceresi olduğu için misc_open() [1] fonksiyonunda askıda kalan görevler raporlamaktadır. Şu anda, eğer probe_count 0 olamazsa, misc_open() içerisindeki snapshot_open()'dan çağrılan wait_for_device_probe(), misc_mtx tutulurken sonsuza kadar uyuyabilir. Bir cihaz hub_event() çalışma fonksiyonu tarafından sorgulandığında, probe_count sorgulama fonksiyonu başlamadan önce artırılır ve sorgulama fonksiyonu tamamlandıktan sonra azaltılır. probe_count değerinin 0'a düşmesini engelleyebilecek üç durum vardır: (a) Sorgulanan bir cihazın yanıt vermeyi kesmesi (örneğin bozuk veya kötü niyetli donanım). (b) /dev/raw-gadget arayüzünü kullanarak bir USB cihazını taklit eden bir işlemin herhangi bir nedenle yanıt vermeyi kesmesi. (c) Mevcut cihaz sorgulama istekleri tamamlanmadan yeni cihaz sorgulama isteklerinin gelmeye devam etmesi. syzbot'un raporladığı fenomen (b) durumudur. system_transition_mutex ve misc_mtx tutan bir işlem, wait_for_device_probe() içinde probe_count'un 0 olmasını beklemektedir; ancak hub_event() çalışma fonksiyonundan çağrılan sorgulama fonksiyonu, mutex_lock(&misc_mtx) noktasında engellenen işlemlerin /dev/raw-gadget arayüzü üzerinden yanıt vermesini beklemektedir. Bu yama, wait_for_device_probe() işlemini snapshot_open()'dan snapshot_write() ve snapshot_ioctl() fonksiyonlarına erteleyerek (b) durumunu hafifletmektedir. Lütfen /dev/raw-gadget arayüzü aracılığıyla bir USB cihazını taklit eden herhangi bir iş parçacığının, kesilemez engelleme işlemleriyle (örneğin mutex_lock()) engellenebildiği sürece (b) olasılığının devam ettiğini unutmayın. Ayrıca (a) ve (c) durumlarının ele alınmadığını lütfen not edin. (c) ile ilgili olarak, kodu yalnızca hazırda bekletmeden geri dönmek için imajı içeren tek bir cihazı bekleyecek şekilde değiştirmeliyiz. wait_for_device_probe() için zaman aşımı kullanımı imajdaki kullanıcı verilerinin kaybına yol açabileceğinden (a) durumunun nasıl çözüleceğini bilmiyorum. Belki de kullanıcı alanının /dev/snapshot arayüzünü açmadan önce imaj cihazını beklemesini istemeliyiz.
Nasıl düzeltilir
- linux linux_kernel4.14.291, 4.19.256, 5.4.211, 5.10.137, 5.15.61, 5.18.18, 5.19.2 ya da sonraki bir sürüm
- git.kernel.org/stable/c/003a456ae6f70bb97e436e02fc5105be577c1570
- git.kernel.org/stable/c/2f0e18e0db42f4f8bc87d3d98333680065ceeff8
- git.kernel.org/stable/c/3c48d3067eaf878642276f053575a5c642600a50
- git.kernel.org/stable/c/5a283b59bce72c05c60e9f0fa92a28b5b850d8bb
- git.kernel.org/stable/c/8386c414e27caba8501119948e9551e52b527f59
- git.kernel.org/stable/c/8c90947e5f1801e6c7120021c6ea0f3ad6a4eb91
- git.kernel.org/stable/c/b8e1ae9433d7bd95f2dcc044a7a6f20a4c40d258
- git.kernel.org/stable/c/f7042cf9dd40733f387b7cac021e626c74b8856f
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | v < 4.14.291, 4.15 ≤ v < 4.19.256, 4.20 ≤ v < 5.4.211, 5.5 ≤ v < 5.10.137, 5.11 ≤ v < 5.15.61, 5.16 ≤ v < 5.18.18, 5.19 ≤ v < 5.19.2 | 4.14.291, 4.19.256, 5.4.211, 5.10.137, 5.15.61, 5.18.18, 5.19.2 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.