CVE-2025-21880
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: drm/xe/userptr: EFAULT işlemenin düzeltilmesi Şu anda, kullanıcının sadece bir unmap işlemi yapmış olabileceği ve aslında o belleğe GPU üzerinden erişme niyeti olmadığı varsayımıyla; tüm vm'yi sonlandırmaktan ve hata döndürmekten kaçınmak amacıyla, xe_vm_userptr_pin() tarafından çağrıldığında hmm_range_fault() fonksiyonundan gelen EFAULT hatasını kritik olmayan bir hata olarak değerlendiriyoruz. Bu noktada PTE'ler zaten silinmiş olduğundan herhangi bir erişim sayfa hatası (page fault) oluşturmalı ve eğer sabitleme (pin) orada da başarısız olursa bu durum kritik hale gelecektir. Ancak, yeniden bağlama (rebind) adımını gerçekleştirmeden önce çağıran tarafta meydana gelen bir olay nedeniyle sabitlemeyi tekrar denemek zorunda kaldıysak, ancak bu sırada userptr'nin yeniden doğrulanması gerekiyorsa ve bu sefer EFAULT ile karşılaşılıyorsa, userptr vma'nın hala preempt_rebind_work_func() içerisindeki yeniden bağlama listesinde olması mümkün görünmektedir. Bu durum, bazı iş yükleri çalıştırılırken karşılaşılan şu dahili kullanıcı raporunu açıklamaktadır: [ 191.738349] WARNING: CPU: 1 PID: 157 at drivers/gpu/drm/xe/xe_res_cursor.h:158 xe_pt_stage_bind.constprop.0+0x60a/0x6b0 [xe] [ 191.738551] Workqueue: xe-ordered-wq preempt_rebind_work_func [xe] [ 191.738616] RIP: 0010:xe_pt_stage_bind.constprop.0+0x60a/0x6b0 [xe] [ 191.738690] Call Trace: [ 191.738692] <TASK> [ 191.738694] ? show_regs+0x69/0x80 [ 191.738698] ? __warn+0x93/0x1a0 [ 191.738703] ? xe_pt_stage_bind.constprop.0+0x60a/0x6b0 [xe] [ 191.738759] ? report_bug+0x18f/0x1a0 [ 191.738764] ? handle_bug+0x63/0xa0 [ 191.738767] ? exc_invalid_op+0x19/0x70 [ 191.738770] ? asm_exc_invalid_op+0x1b/0x20 [ 191.738777] ? xe_pt_stage_bind.constprop.0+0x60a/0x6b0 [xe] [ 191.738834] ? ret_from_fork_asm+0x1a/0x30 [ 191.738849] bind_op_prepare+0x105/0x7b0 [xe] [ 191.738906] ? dma_resv_reserve_fences+0x301/0x380 [ 191.738912] xe_pt_update_ops_prepare+0x28c/0x4b0 [xe] [ 191.738966] ? kmemleak_alloc+0x4b/0x80 [ 191.738973] ops_execute+0x188/0x9d0 [xe] [ 191.739036] xe_vm_rebind+0x4ce/0x5a0 [xe] [ 191.739098] ? trace_hardirqs_on+0x4d/0x60 [ 191.739112] preempt_rebind_work_func+0x76f/0xd00 [xe] sg hiçbir zaman doldurulmadığı halde vma'nın hâlâ yeniden bağlanacak şekilde işaretlenmesi (oysaki bu özel EFAULT durumu için atlanması gerekirken), ardından NPD oluşmasına neden olmaktadır. Yapılan düzeltmenin kullanıcı raporundaki sorunu giderdiği onaylanmıştır. v2 (MattB): - Daha erkene taşındı. v3 (MattB): - Bunun gerçekten sorunu çözdüğünü netleştirmek için commit mesajı güncellendi. (commit 6b93cb98910c826c2e2004942f8b060311e43618 adresinden cherry pick yapılmıştır)
Nasıl düzeltilir
- linux linux_kernel6.12.18, 6.13.6 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 | 6.10 ≤ v < 6.12.18, 6.13 ≤ v < 6.13.6, 6.14 | 6.12.18, 6.13.6 |
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.