CVE-2025-39995

Naməlum

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: media: i2c: tc358743: probe zamanı yetim taymerin səbəb olduğu use-after-free xətalarının düzəldilməsi state->timer özünü yeniləyərək work_i2c_poll və delayed_work_enable_hotplug funksiyalarını planlaşdıran siklik bir taymerdir. timer_delete() funksiyasının istifadəsi, taymer məhv edilərkən onun hələ də işləmədiyini təmin etmir; eynilə cancel_delayed_work() funksiyası, əgər artıq icra olunursa, delayed_work_enable_hotplug-ın dayandırıldığını təmin edə bilmir. Taymerin başladılmasından sonra probe uğursuz olduqda, bunlar yetimlər kimi işləməyə davam edə və tc358743_irq_poll_timer vasitəsilə artıq azad edilmiş tc358743_state obyektinə müraciət edə bilər. Aşağıda KASAN tərəfindən tutulmuş izlər verilmişdir. BUG: KASAN: slab-use-after-free in __run_timer_base.part.0+0x7d7/0x8c0 Write of size 8 at addr ffff88800ded83c8 by task swapper/1/0 ... Call Trace: <IRQ> dump_stack_lvl+0x55/0x70 print_report+0xcf/0x610 ? __pfx_sched_balance_find_src_group+0x10/0x10 ? __run_timer_base.part.0+0x7d7/0x8c0 kasan_report+0xb8/0xf0 ? __run_timer_base.part.0+0x7d7/0x8c0 __run_timer_base.part.0+0x7d7/0x8c0 ? rcu_sched_clock_irq+0xb06/0x27d0 ? __pfx___run_timer_base.part.0+0x10/0x10 ? try_to_wake_up+0xb15/0x1960 ? tmigr_update_events+0x280/0x740 ? _raw_spin_lock_irq+0x80/0xe0 ? __pfx__raw_spin_lock_irq+0x10/0x10 tmigr_handle_remote_up+0x603/0x7e0 ? __pfx_tmigr_handle_remote_up+0x10/0x10 ? sched_balance_trigger+0x98/0x9f0 ? sched_tick+0x221/0x5a0 ? _raw_spin_lock_irq+0x80/0xe0 ? __pfx__raw_spin_lock_irq+0x10/0x10 ? tick_nohz_handler+0x339/0x440 ? __pfx_tmigr_handle_remote_up+0x10/0x10 __walk_groups.isra.0+0x42/0x150 tmigr_handle_remote+0x1f4/0x2e0 ? __pfx_tmigr_handle_remote+0x10/0x10 ? ktime_get+0x60/0x140 ? lapic_next_event+0x11/0x20 ? clockevents_program_event+0x1d4/0x2a0 ? hrtimer_interrupt+0x322/0x780 handle_softirqs+0x16a/0x550 irq_exit_rcu+0xaf/0xe0 sysvec_apic_timer_interrupt+0x70/0x80 </IRQ> ... Allocated by task 141: kasan_save_stack+0x24/0x50 kasan_save_track+0x14/0x30 __kasan_kmalloc+0x7f/0x90 __kmalloc_node_track_caller_noprof+0x198/0x430 devm_kmalloc+0x7b/0x1e0 tc358743_probe+0xb7/0x610 i2c_device_probe+0x51d/0x880 really_probe+0x1ca/0x5c0 __driver_probe_device+0x248/0x310 driver_probe_device+0x44/0x120 __device_attach_driver+0x174/0x220 bus_for_each_drv+0x100/0x190 __device_attach+0x206/0x370 bus_probe_device+0x123/0x170 device_add+0xd25/0x1470 i2c_new_client_device+0x7a0/0xcd0 do_one_initcall+0x89/0x300 do_init_module+0x29d/0x7f0 load_module+0x4f48/0x69e0 init_module_from_file+0xe4/0x150 idempotent_init_module+0x320/0x670 __x64_sys_finit_module+0xbd/0x120 do_syscall_64+0xac/0x280 entry_SYSCALL_64_after_hwframe+0x77/0x7f Freed by task 141: kasan_save_stack+0x24/0x50 kasan_save_track+0x14/0x30 kasan_save_free_info+0x3a/0x60 __kasan_slab_free+0x3f/0x50 kfree+0x137/0x370 release_nodes+0xa4/0x100 devres_release_group+0x1b2/0x380 i2c_device_probe+0x694/0x880 really_probe+0x1ca/0x5c0 __driver_probe_device+0x248/0x310 driver_probe_device+0x44/0x120 __device_attach_driver+0x174/0x220 bus_for_each_drv+0x100/0x190 __device_attach+0x206/0x370 bus_probe_device+0x123/0x170 device_add+0xd25/0x1470 i2c_new_client_device+0x7a0/0xcd0 do_one_initcall+0x89/0x300 do_init_module+0x29d/0x7f0 load_module+0x4f48/0x69e0 init_module_from_file+0xe4/0x150 idempotent_init_module+0x320/0x670 __x64_sys_finit_module+0xbd/0x120 do_syscall_64+0xac/0x280 entry_SYSCALL_64_after_hwframe+0x77/0x7f ... Resursların təmizlənməsindən əvvəl taymerin və iş elementlərinin düzgün şəkildə sonlandırılmasını təmin etmək üçün timer_delete() funksiyasını timer_delete_sync(), cancel_delayed_work() funksiyasını isə cancel_delayed_work_sync() ilə əvəzləyin. Bu xəta ilkin olaraq statik analiz vasitəsilə müəyyən edilmişdir. Reproduksiya və sınaq üçün kernel modulu vasitəsilə tc358743 cihazının funksional emulyasiyasını yaratmışam və debugfs interfeysi vasitəsilə xətalar törətmişəm.

CiddilikNaməlum
CVSS—
İstismar ehtimalı—
MəhsulLinux
Dərc15 okt 2025
İlk görülmə15 okt 2025

Necə düzəltmək olar

Yeniləyin
  • Linux Linux9205fb6e617a1c596d9a9ad2a160ee696e09d520, 70913586c717dd25cfbade7a418e92cc9c99398a, 663faf1179db9663a3793c75e9bc869358bad910, 3d17701c156579969470e58b3a906511f8bc018d, 228d06c4cbfc750f1216a3fd91b4693b0766d2f6, f92181c0e13cad9671d07b15be695a97fc2534a3, f3f3f00bcabbd2ce0a77a2ac7a6797b8646bfd8b, 2610617effb4454d2f1c434c011ccb5cc7140711, 79d10f4f21a92e459b2276a77be62c59c1502c9d və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
Linux Linuxd32d98642de66048f9534a05f3641558e811bbc9 ≤ v < 9205fb6e617a1c596d9a9ad2a160ee696e09d520, d32d98642de66048f9534a05f3641558e811bbc9 ≤ v < 70913586c717dd25cfbade7a418e92cc9c99398a, d32d98642de66048f9534a05f3641558e811bbc9 ≤ v < 663faf1179db9663a3793c75e9bc869358bad910, d32d98642de66048f9534a05f3641558e811bbc9 ≤ v < 3d17701c156579969470e58b3a906511f8bc018d, d32d98642de66048f9534a05f3641558e811bbc9 ≤ v < 228d06c4cbfc750f1216a3fd91b4693b0766d2f6, d32d98642de66048f9534a05f3641558e811bbc9 ≤ v < f92181c0e13cad9671d07b15be695a97fc2534a3, d32d98642de66048f9534a05f3641558e811bbc9 ≤ v < f3f3f00bcabbd2ce0a77a2ac7a6797b8646bfd8b, d32d98642de66048f9534a05f3641558e811bbc9 ≤ v < 2610617effb4454d2f1c434c011ccb5cc7140711, d32d98642de66048f9534a05f3641558e811bbc9 ≤ v < 79d10f4f21a92e459b2276a77be62c59c1502c9d, 4.39205fb6e617a1c596d9a9ad2a160ee696e09d520, 70913586c717dd25cfbade7a418e92cc9c99398a, 663faf1179db9663a3793c75e9bc869358bad910, 3d17701c156579969470e58b3a906511f8bc018d, 228d06c4cbfc750f1216a3fd91b4693b0766d2f6, f92181c0e13cad9671d07b15be695a97fc2534a3, f3f3f00bcabbd2ce0a77a2ac7a6797b8646bfd8b, 2610617effb4454d2f1c434c011ccb5cc7140711, 79d10f4f21a92e459b2276a77be62c59c1502c9d

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-39995 · Linux · Dark Radar