CVE-2026-53161
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: misc: fastrpc: workqueue bağlamında fastrpc_user için serbest bırakıldıktan sonra kullanım (use-after-free) hatası düzeltildi fastrpc_device_release() ile DSP yanıtlarını işleyen workqueue arasında bir yarış durumu (race condition) bulunmaktadır. Kullanıcı dosya tanımlayıcıyı kapattığında, fastrpc_device_release() fastrpc_user yapısını serbest bırakır. Eş zamanlı olarak, devam eden bir DSP çağrısı tamamlanabilir ve fastrpc_rpmsg_callback(), schedule_work(&ctx->put_work) aracılığıyla bağlam temizliğini planlar. Eğer workqueue, fastrpc_device_release() kullanıcı yapısını serbest bıraktıktan sonra veya bununla paralel olarak fastrpc_context_free() fonksiyonunu çalıştırırsa, serbest bırakılmış olan fastrpc_user referansına erişmeye çalışır. Yarış durumundaki bağlamın durumuna bağlı olarak, aşağıdaki erişimlerden herhangi biri gerçekleşebilir: 1. fastrpc_buf_free(), fiziksel adresi dma_free_coherent() fonksiyonuna iletmeden önce saklanan IOVA'dan SID bitlerini ayıklamak için fastrpc_ipa_to_dma_addr(buf->fl->cctx, ...) fonksiyonunu çağırır. 2. fastrpc_free_map(), belleği DSP VM'den tekrar HLOS'a döndüren qcom_scm_assign_mem() çağrısı için gereken kaynak izin bit maskesini yeniden oluşturmak amacıyla map->fl->cctx->vmperms[0].vmid değerini okur. 3. fastrpc_free_map(), eşleme düğümünü fl->maps listesinden güvenli bir şekilde kaldırmak için map->fl->lock kilidini alır. Ortaya çıkan serbest bırakıldıktan sonra kullanım (use-after-free) durumu şu şekilde görülmektedir: pc : fastrpc_buf_free+0x38/0x80 [fastrpc] lr : fastrpc_context_free+0xa8/0x1b0 [fastrpc] fastrpc_context_free+0xa8/0x1b0 [fastrpc] fastrpc_context_put_wq+0x78/0xa0 [fastrpc] process_one_work+0x180/0x450 worker_thread+0x26c/0x388 fastrpc_user yapısına kref tabanlı referans sayacı eklendi. Her çağırma bağlamının tahsis anında kullanıcı üzerinde bir referans alması ve bağlam serbest bırakıldığında bu referansı bırakması sağlandı. Dosya kapatıldığında fastrpc_device_release() içerisindeki ilk referans serbest bırakılır. Kullanıcı yapısının yıkım işlemi —bekleyen bağlamların, eşlemelerin, mmaps'lerin ve kanal bağlam referansının serbest bırakılması— kref serbest bırakma geri çağırma fonksiyonu olan fastrpc_user_free() içerisine taşındı; böylece işlem, cihaz kapatıldığında veya son devam eden bağlam tamamlandığında fark etmeksizin, yalnızca son referans bırakıldığında çalışacaktır.
Nasıl düzeltilir
- linux linux_kernel5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.94, 6.18.36, 7.0.13 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.1 ≤ v < 5.10.259, 5.11 ≤ v < 5.15.210, 5.16 ≤ v < 6.1.176, 6.2 ≤ v < 6.6.143, 6.7 ≤ v < 6.12.94, 6.13 ≤ v < 6.18.36, 6.19 ≤ v < 7.0.13, 7.1 | 5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.94, 6.18.36, 7.0.13 |
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.