CVE-2026-53161
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: misc: fastrpc: workqueue kontekstində fastrpc_user-ın istifadədən sonra azad edilməsi problemini düzəldin fastrpc_device_release() ilə DSP cavablarını emal edən workqueue arasında yarış vəziyyəti mövcuddur. İstifadəçi fayl deskriptorunu bağladıqda fastrpc_device_release() fastrpc_user strukturunu azad edir. Eyni vaxtda davam edən DSP çağırışı tamamlana bilər və fastrpc_rpmsg_callback() schedule_work(&ctx->put_work) vasitəsilə kontekstin təmizlənməsini planlaşdırır. Əgər workqueue fastrpc_context_free()-i fastrpc_device_release() istifadəçi strukturunu azad etdiyi vaxtla paralel və ya ondan sonra işə salarsa, o, azad edilmiş fastrpc_user-a müraciət edir. Yarış anında kontekstin vəziyyətindən asılı olaraq aşağıdakı müraciətlərdən hər hansı biri baş verə bilər: 1. fastrpc_buf_free() fiziki ünvanı dma_free_coherent()-ə ötürməzdən əvvəl saxlanılmış IOVA-dan SID bitlərini çıxarmaq üçün fastrpc_ipa_to_dma_addr(buf->fl->cctx, ...) çağırır. 2. fastrpc_free_map() yaddaşı DSP VM-dən HLOS-a qaytaran qcom_scm_assign_mem() çağırışı üçün lazım olan mənbə icazə bitmaskını bərpa etmək məqsədilə map->fl->cctx->vmperms[0].vmid oxuyur. 3. fastrpc_free_map() map qovşağını fl->maps siyahısından təhlükəsiz şəkildə çıxarmaq üçün map->fl->lock kilidini əldə edir. Nəticədə yaranan istifadədən sonra azad etmə aşağıdakı kimi təzahür edir: 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-a kref əsaslı istinad sayğacı əlavə edin. Hər invoke konteksti ayırma zamanı istifadəçiyə istinad götürsün və kontekst azad edildikdə onu buraxsın. İlkin istinadı fayl bağlanarkən fastrpc_device_release()-də buraxın. İstifadəçi strukturunun sökülməsini — gözləyən kontekstlərin, map-ların, mmap-ların və kanal kontekst istinadının azad edilməsini — kref buraxma callback-i olan fastrpc_user_free()-ə köçürün ki, bu, yalnız son istinad buraxıldıqda işə düşsün, bunun cihaz bağlanması zamanı, yoxsa son davam edən kontekst tamamlandıqdan sonra baş verməsindən asılı olmayaraq.
Necə düzəltmək olar
- linux linux_kernel5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.94, 6.18.36, 7.0.13 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| 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 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.