CVE-2024-56541

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: wifi: ath12k: ath12k_dp_cc_cleanup() funksiyasında use-after-free xətası düzəldildi ath12k modulunun silinməsi zamanı, ath12k_core_deinit() daxilində, ath12k_mac_destroy() ah->hw obyektini mac80211-dən qeydiyyatdan çıxarır və həm ah->hw-ni, həm də onun daxilindəki bütün ar-ları azad edir. Bundan sonra ath12k_core_soc_destroy()-> ath12k_dp_free()-> ath12k_dp_cc_cleanup() gözləyən skb-dən azad edilmiş ar-lardan birinə müraciət etməyə çalışır. Bunun səbəbi odur ki, mac destroy zamanı drayver bəzi məlumat paketlərini təmizləyə bilməmişdir; bu paketlərə daha sonra ath12k_dp_cc_cleanup() funksiyasında müraciət edilmiş və onlar azad edilmişdir, lakin paketten istifadə edilən ar bu use-after-free xətasına səbəb olmuşdur. BUG: KASAN: use-after-free in ath12k_dp_cc_cleanup.part.0+0x5e2/0xd40 [ath12k] Write of size 4 at addr ffff888150bd3514 by task modprobe/8926 CPU: 0 UID: 0 PID: 8926 Comm: modprobe Not tainted 6.11.0-rc2-wt-ath+ #1746 Hardware name: Intel(R) Client Systems NUC8i7HVK/NUC8i7HVB, BIOS HNKBLi70.86A.0067.2021.0528.1339 05/28/2021 Call Trace: <TASK> dump_stack_lvl+0x7d/0xe0 print_address_description.constprop.0+0x33/0x3a0 print_report+0xb5/0x260 ? kasan_addr_to_slab+0x24/0x80 kasan_report+0xd8/0x110 ? ath12k_dp_cc_cleanup.part.0+0x5e2/0xd40 [ath12k] ? ath12k_dp_cc_cleanup.part.0+0x5e2/0xd40 [ath12k] kasan_check_range+0xf3/0x1a0 __kasan_check_write+0x14/0x20 ath12k_dp_cc_cleanup.part.0+0x5e2/0xd40 [ath12k] ath12k_dp_free+0x178/0x420 [ath12k] ath12k_core_stop+0x176/0x200 [ath12k] ath12k_core_deinit+0x13f/0x210 [ath12k] ath12k_pci_remove+0xad/0x1c0 [ath12k] pci_device_remove+0x9b/0x1b0 device_remove+0xbf/0x150 device_release_driver_internal+0x3c3/0x580 ? __kasan_check_read+0x11/0x20 driver_detach+0xc4/0x190 bus_remove_driver+0x130/0x2a0 driver_unregister+0x68/0x90 pci_unregister_driver+0x24/0x240 ? find_module_all+0x13e/0x1e0 ath12k_pci_exit+0x10/0x20 [ath12k] __do_sys_delete_module+0x32c/0x580 ? module_flags+0x2f0/0x2f0 ? kmem_cache_free+0xf0/0x410 ? __fput+0x56f/0xab0 ? __fput+0x56f/0xab0 ? debug_smp_processor_id+0x17/0x20 __x64_sys_delete_module+0x4f/0x70 x64_sys_call+0x522/0x9f0 do_syscall_64+0x64/0x130 entry_SYSCALL_64_after_hwframe+0x4b/0x53 RIP: 0033:0x7f8182c6ac8b 24de1b7b231c nömrəli commit ("wifi: ath12k: fix flush failure in recovery scenarios"), bərpa ssenariləri zamanı gözləyən paketlərin sayını azaltmaq üçün dəyişiklik əlavə etmişdir; bu, bərpa zamanı ah->hw və onun daxilindəki bütün ar-lar toxunulmaz qaldığı üçün məntiqlidir. Lakin core deinit zamanı paketlərin sayının azaldılmasında və ya boş waitq-nin oyadılmasında heç bir fayda yoxdur, çünki modul silinəcək və həmçinin gözləyən skb-lərdən gələn ar-lar istifadə edilə bilməz, paketlər sadəcə geri buraxılmalıdır. Bunu düzəltmək üçün, drayver qeydiyyatdan çıxarıldıqda skb->cb vasitəsilə ar-a müraciət etməkdən qaçınmaq lazımdır. Test edildi: QCN9274 hw2.0 PCI WLAN.WBE.1.1.1-00214-QCAHKSWPL_SILICONZ-1 Test edildi: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc27 dek 2024
İlk görülmə27 dek 2024

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.11.11, 6.12.2 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel6.10 ≤ v < 6.11.11, 6.12 ≤ v < 6.12.26.11.11, 6.12.2

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.