CVE-2022-50145
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: dmaengine: sf-pdma: Bir DMA kanalı için çoklu iş parçacığı (multithread) desteği eklendi Bir DMA kanalı alındığında ve birden fazla iş parçacığında kullanmaya çalışıldığında, bu durum oops hatasına ve sistemin donmasına neden olmaktadır. % echo 64 > /sys/module/dmatest/parameters/threads_per_chan % echo 10000 > /sys/module/dmatest/parameters/iterations % echo 1 > /sys/module/dmatest/parameters/run [ 89.480664] Unable to handle kernel NULL pointer dereference at virtual address 00000000000000a0 [ 89.488725] Oops [#1] [ 89.494708] CPU: 2 PID: 1008 Comm: dma0chan0-copy0 Not tainted 5.17.0-rc5 [ 89.509385] epc : vchan_find_desc+0x32/0x46 [ 89.513553] ra : sf_pdma_tx_status+0xca/0xd6 Bu durum bir veri yarışından (data race) kaynaklanmaktadır. device_prep_dma_memcpy() çağrıldığı anda her iş parçacığı kanalın tanımlayıcısını (descriptor) yeniden yazar. Bu da sürücünün, aslında serbest bırakılmış veya başka bir tanesiyle değiştirilmiş olan doğru tanımlayıcıyı kullandığını düşünmesi durumuna yol açar. Mevcut düzeltmelerle birlikte, bir tanımlayıcı yalnızca kullanıldığında değerini değiştirmektedir. Yeni bir tanımlayıcı, gönderilmeye hazır tanımlayıcılarla doldurulmuş olan vc->desc_issued kuyruğundan alınır. İş parçacıklarının DMA kanalı tanımlayıcısına doğrudan erişimi yoktur; artık sadece daha sonra işlenmek üzere bir tanımlayıcı kuyruğa eklemek mümkündür.
Nasıl düzeltilir
- linux linux_kernel5.10.137, 5.15.61, 5.18.18, 5.19.2 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 5.5 ≤ v < 5.10.137, 5.11 ≤ v < 5.15.61, 5.16 ≤ v < 5.18.18, 5.19 ≤ v < 5.19.2 | 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.