CVE-2025-39749

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: rcu: ->defer_qs_iw_pending sahəsini data race-dən qoruyaq CONFIG_IRQ_WORK=y ilə qurulmuş kernellərdə, rcu_read_unlock() kodu kəsilmələrin (interrupts) deaktiv edildiyi bölgədə çağırıldıqda, o, rcu_read_unlock_special() funksiyasını çağıracaqdır. Bu funksiya sistemin RCU oxuma tərəfi kritik bölməsinin faktiki olaraq nə vaxt bitdiyini görməsi üçün irq-work handler-dən istifadə edir. Həmin sonlanma yalnız kəsilmələr yenidən aktivləşdirildikdən sonra baş verə bilər. Bəzi kernellərdə, məsələn, rcutree.use_softirq=y ilə yüklənilənlərdə, irq-work handler şərtsiz şəkildə istifadə olunur. Hər CPU üçün olan rcu_data strukturunun ->defer_qs_iw_pending sahəsi irq-work handler tərəfindən yenilənir və həmçinin rcu_read_unlock_special() tərəfindən həm oxunur, həm də yenilənir. Bu, aşağıdakı KCSAN xətasına səbəb olmuşdur: ------------------------------------------------------------------------ BUG: KCSAN: data-race in rcu_preempt_deferred_qs_handler / rcu_read_unlock_special read to 0xffff96b95f42d8d8 of 1 bytes by task 90 on cpu 8: rcu_read_unlock_special+0x175/0x260 __rcu_read_unlock+0x92/0xa0 rt_spin_unlock+0x9b/0xc0 __local_bh_enable+0x10d/0x170 __local_bh_enable_ip+0xfb/0x150 rcu_do_batch+0x595/0xc40 rcu_cpu_kthread+0x4e9/0x830 smpboot_thread_fn+0x24d/0x3b0 kthread+0x3bd/0x410 ret_from_fork+0x35/0x40 ret_from_fork_asm+0x1a/0x30 write to 0xffff96b95f42d8d8 of 1 bytes by task 88 on cpu 8: rcu_preempt_deferred_qs_handler+0x1e/0x30 irq_work_single+0xaf/0x160 run_irq_workd+0x91/0xc0 smpboot_thread_fn+0x24d/0x3b0 kthread+0x3bd/0x410 ret_from_fork+0x35/0x40 ret_from_fork_asm+0x1a/0x30 no locks held by irq_work/8/88. irq event stamp: 200272 hardirqs last enabled at (200272): [<ffffffffb0f56121>] finish_task_switch+0x131/0x320 hardirqs last disabled at (200271): [<ffffffffb25c7859>] __schedule+0x129/0xd70 softirqs last enabled at (0): [<ffffffffb0ee093f>] copy_process+0x4df/0x1cc0 softirqs last disabled at (0): [<0000000000000000>] 0x0 ------------------------------------------------------------------------ Problem ondadır ki, irq-work handler-lər kəsilmələr aktiv vəziyyətdə işləyir, bu isə o deməkdir ki, rcu_preempt_deferred_qs_handler() kəsilə bilər və həmin kəsilmə handler-i RCU oxuma tərəfi kritik bölməsini ehtiva edə bilər ki, bu da öz növbəsində rcu_read_unlock_special()-ı çağıra bilər. RCU tərəfindən istifadə edilən ciddi KCSAN əməliyyat rejimində bu, ->defer_qs_iw_pending sahəsində data race təşkil edir. Bu səbəbdən, cari commit rcu_preempt_deferred_qs_handler()-ın ->defer_qs_iw_pending sahəsini yeniləyən hissəsində kəsilmələri deaktiv edir. Bu handler sürətli yol (fast path) olmadığı üçün bu tədbir kifayətdir.

CiddilikYüksək
CVSS7.0
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc11 sen 2025
İlk görülmə11 sen 2025

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.4.297, 5.10.241, 5.15.190, 6.1.149, 6.6.103, 6.12.43, 6.15.11, 6.16.2 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel5.3 ≤ v < 5.4.297, 5.5 ≤ v < 5.10.241, 5.11 ≤ v < 5.15.190, 5.16 ≤ v < 6.1.149, 6.2 ≤ v < 6.6.103, 6.7 ≤ v < 6.12.43, 6.13 ≤ v < 6.15.11, 6.16 ≤ v < 6.16.25.4.297, 5.10.241, 5.15.190, 6.1.149, 6.6.103, 6.12.43, 6.15.11, 6.16.2
debian debian_linux11.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.

Intelligence 360 paketində

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.

CVE-2025-39749 · Linux Kernel · Dark Radar