CVE-2025-38211
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: RDMA/iwcm: cm_id məhv edildikdən sonra iş obyektlərinin use-after-free xətasının düzəldilməsi 59c68ac31e15 ("iw_cm: free cm_id resources on the last deref") komiti, bütün istinadlar silindikdə cm_id resurslarını azad etməklə cm_id resurslarının idarəetməsini sadələşdirmişdir. İstinadlar ya iw_cm hadisə tutucularının tamamlanması zamanı, ya da tətbiq cm_id-ni məhv etdikdə silinir. Bu komit, cm_id məhv edilərkən cm_id_private obyektinin hələ də hadisə tutucu işləri tərəfindən istifadə oluna bildiyi use-after-free şəraitini yaratmışdır. aee2424246f9 ("RDMA/iwcm: Fix a use-after-free related to destroying CM IDs") komiti, cm_id məhvi zamanı bütün gözləyən işlərin təmizlənməsi ilə bu use-after-free problemini həll etmişdir. Lakin, digər bir use-after-free ehtimalı qalmışdı. Bu, cm_id yaradılması zamanı alloc_work_entries() daxilində hər bir cm_id_priv üçün ayrılan və sonradan cm_id-yə olan bütün istinadlar silindikdə dealloc_work_entries()-də azad edilən iş obyektləri ilə bağlı baş verir. Əgər cm_id-nin sonuncu istinadı hadisə tutucu işində azaldılarsa, işin özü üçün nəzərdə tutulmuş iş obyekti silinir və aşağıdakı use-after-free BUG-na səbəb olur: BUG: KASAN: slab-use-after-free in __pwq_activate_work+0x1ff/0x250 Read of size 8 at addr ffff88811f9cf800 by task kworker/u16:1/147091 CPU: 2 UID: 0 PID: 147091 Comm: kworker/u16:1 Not tainted 6.15.0-rc2+ #27 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-3.fc41 04/01/2014 Workqueue: 0x0 (iw_cm_wq) Call Trace: <TASK> dump_stack_lvl+0x6a/0x90 print_report+0x174/0x554 ? __virt_addr_valid+0x208/0x430 ? __pwq_activate_work+0x1ff/0x250 kasan_report+0xae/0x170 ? __pwq_activate_work+0x1ff/0x250 __pwq_activate_work+0x1ff/0x250 pwq_dec_nr_in_flight+0x8c5/0xfb0 process_one_work+0xc11/0x1460 ? __pfx_process_one_work+0x10/0x10 ? assign_work+0x16c/0x240 worker_thread+0x5ef/0xfd0 ? __pfx_worker_thread+0x10/0x10 kthread+0x3b0/0x770 ? __pfx_kthread+0x10/0x10 ? rcu_is_watching+0x11/0xb0 ? _raw_spin_unlock_irq+0x24/0x50 ? rcu_is_watching+0x11/0xb0 ? __pfx_kthread+0x10/0x10 ret_from_fork+0x30/0x70 ? __pfx_kthread+0x10/0x10 ret_from_fork_asm+0x1a/0x30 </TASK> Allocated by task 147416: kasan_save_stack+0x2c/0x50 kasan_save_track+0x10/0x30 __kasan_kmalloc+0xa6/0xb0 alloc_work_entries+0xa9/0x260 [iw_cm] iw_cm_connect+0x23/0x4a0 [iw_cm] rdma_connect_locked+0xbfd/0x1920 [rdma_cm] nvme_rdma_cm_handler+0x8e5/0x1b60 [nvme_rdma] cma_cm_event_handler+0xae/0x320 [rdma_cm] cma_work_handler+0x106/0x1b0 [rdma_cm] process_one_work+0x84f/0x1460 worker_thread+0x5ef/0xfd0 kthread+0x3b0/0x770 ret_from_fork+0x30/0x70 ret_from_fork_asm+0x1a/0x30 Freed by task 147091: kasan_save_stack+0x2c/0x50 kasan_save_track+0x10/0x30 kasan_save_free_info+0x37/0x60 __kasan_slab_free+0x4b/0x70 kfree+0x13a/0x4b0 dealloc_work_entries+0x125/0x1f0 [iw_cm] iwcm_deref_id+0x6f/0xa0 [iw_cm] cm_work_handler+0x136/0x1ba0 [iw_cm] process_one_work+0x84f/0x1460 worker_thread+0x5ef/0xfd0 kthread+0x3b0/0x770 ret_from_fork+0x30/0x70 ret_from_fork_asm+0x1a/0x30 Last potentially related work creation: kasan_save_stack+0x2c/0x50 kasan_record_aux_stack+0xa3/0xb0 __queue_work+0x2ff/0x1390 queue_work_on+0x67/0xc0 cm_event_handler+0x46a/0x820 [iw_cm] siw_cm_upcall+0x330/0x650 [siw] siw_cm_work_handler+0x6b9/0x2b20 [siw] process_one_work+0x84f/0x1460 worker_thread+0x5ef/0xfd0 kthread+0x3b0/0x770 ret_from_fork+0x30/0x70 ret_from_fork_asm+0x1a/0x30 Bu BUG, rdma transport və siw drayveri üçün blktests-in nvme/061 test keysini təkrarlamaqla reproduce edilə bilir. cm_id_private iş obyektlərinin use-after-free xətasının qarşısını almaq üçün cm_id-yə olan sonuncunun hadisə tutucu işlərində deyil, cm_id məhv edilmə kontekstində azaldıldığından əmin olun. Bunun üçün...
Necə düzəltmək olar
- linux linux_kernel5.4.296, 5.10.240, 5.15.186, 6.1.142, 6.6.95, 6.12.35, 6.15.4 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 | 4.8 ≤ v < 5.4.296, 5.5 ≤ v < 5.10.240, 5.11 ≤ v < 5.15.186, 5.16 ≤ v < 6.1.142, 6.2 ≤ v < 6.6.95, 6.7 ≤ v < 6.12.35, 6.13 ≤ v < 6.15.4 | 5.4.296, 5.10.240, 5.15.186, 6.1.142, 6.6.95, 6.12.35, 6.15.4 |
| debian debian_linux | 11.0 | — |
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.