CVE-2025-39824
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: HID: asus: HID_CLAIMED_INPUT validasiyası vasitəsilə UAF xətasının düzəldilməsi hid_hw_start() çağırıldıqdan sonra, HID_CONNECT_DEFAULT qoşulma maskasından istifadə edildiyi üçün cihazın giriş təbəqəsi ilə qurulması məqsədilə nəhayət hidinput_connect() çağırılacaqdır. hidinput_connect() zamanı bütün giriş və çıxış hesabatları emal edilir və müvafiq hid_inputs obyektləri hidinput_configure_usages() vasitəsilə ayrılır və konfiqurasiya edilir. Bu proses hesabat sahələrinin slot etiketlənməsini və imkan bitlərində (capability bitmaps) müvafiq bitlərin təyin edilməsi ilə istifadələrin konfiqurasiyasını əhatə edir. Lakin mümkündür ki, imkan bitləri ümumiyyətlə təyin edilməsin, bu isə növbəti hidinput_has_been_populated() yoxlamasının uğursuz olmasına və nəticədə hid_input və onun altındakı giriş cihazının azad edilməsinə (freeing) səbəb olsun. Bu, ASUS ROG N-Key klaviaturası kimi bədniyyətli bir HID cihazının xüsusi hazırlanmış deskriptor vasitəsilə yuxarıdakı ssenarini tetikləyə bilməsi səbəbindən problemlidir; bu isə hid_hw_start()-dan sonra azad edilmiş giriş cihazının adının yazılması zamanı user-after-free (UAF) xətasına gətirib çıxarır. Aşağıda, 93 nömrəli hesabat qəsdən istifadə konfiqurasiyası zamanı ötürülən HID_UP_UNDEFINED İstifadə Səhifəsindən istifadə edir və bu da azad etmə prosesinə səbəb olur. 0x05, 0x0D, // Usage Page (Digitizer) 0x09, 0x05, // Usage (Touch Pad) 0xA1, 0x01, // Collection (Application) 0x85, 0x0D, // Report ID (13) 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 0x09, 0xC5, // Usage (0xC5) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x04, // Report Count (4) 0xB1, 0x02, // Feature (Data,Var,Abs) 0x85, 0x5D, // Report ID (93) 0x06, 0x00, 0x00, // Usage Page (Undefined) 0x09, 0x01, // Usage (0x01) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x1B, // Report Count (27) 0x81, 0x02, // Input (Data,Var,Abs) 0xC0, // End Collection Aşağıda UAF tetikləndikdən sonrakı KASAN splat verilmişdir: [ 21.672709] ================================================================== [ 21.673700] BUG: KASAN: slab-use-after-free in asus_probe+0xeeb/0xf80 [ 21.673700] Write of size 8 at addr ffff88810a0ac000 by task kworker/1:2/54 [ 21.673700] [ 21.673700] CPU: 1 UID: 0 PID: 54 Comm: kworker/1:2 Not tainted 6.16.0-rc4-g9773391cf4dd-dirty #36 PREEMPT(voluntary) [ 21.673700] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 [ 21.673700] Call Trace: [ 21.673700] <TASK> [ 21.673700] dump_stack_lvl+0x5f/0x80 [ 21.673700] print_report+0xd1/0x660 [ 21.673700] kasan_report+0xe5/0x120 [ 21.673700] __asan_report_store8_noabort+0x1b/0x30 [ 21.673700] asus_probe+0xeeb/0xf80 [ 21.673700] hid_device_probe+0x2ee/0x700 [ 21.673700] really_probe+0x1c6/0x6b0 [ 21.673700] __driver_probe_device+0x24f/0x310 [ 21.673700] driver_probe_device+0x4e/0x220 [...] [ 21.673700] [ 21.673700] Allocated by task 54: [ 21.673700] kasan_save_stack+0x3d/0x60 [ 21.673700] kasan_save_track+0x18/0x40 [ 21.673700] kasan_save_alloc_info+0x3b/0x50 [ 21.673700] __kasan_kmalloc+0x9c/0xa0 [ 21.673700] __kmalloc_cache_noprof+0x139/0x340 [ 21.673700] input_allocate_device+0x44/0x370 [ 21.673700] hidinput_connect+0xcb6/0x2630 [ 21.673700] hid_connect+0xf74/0x1d60 [ 21.673700] hid_hw_start+0x8c/0x110 [ 21.673700] asus_probe+0x5a3/0xf80 [ 21.673700] hid_device_probe+0x2ee/0x700 [ 21.673700] really_probe+0x1c6/0x6b0 [ 21.673700] __driver_probe_device+0x24f/0x310 [ 21.673700] driver_probe_device+0x4e/0x220 [...] [ 21.673700] [ 21.673700] Freed by task 54: [ 21.673700] kasan_save_stack+0x3d/0x60 [ 21.673700] kasan_save_track+0x18/0x40 [ 21.673700] kasan_save_free_info+0x3f/0x60 [ 21.673700] __kasan_slab_free+0x3c/0x50 [ 21.673700] kfre ---truncated---
Necə düzəltmək olar
- linux linux_kernel5.4.298, 5.10.242, 5.15.191, 6.1.150, 6.6.104, 6.12.45, 6.16.5 və ya daha yeni versiya
- git.kernel.org/stable/c/5f3c0839b173f7f33415eb098331879e547d1d2d
- git.kernel.org/stable/c/7170122e2ae4ab378c9cdf7cc54dea8b0abbbca5
- git.kernel.org/stable/c/72a4ec018c9e9bc52f4f80eb3afb5d6a6b752275
- git.kernel.org/stable/c/9a9e4a8317437bf944fa017c66e1e23a0368b5c7
- git.kernel.org/stable/c/a8ca8fe7f516d27ece3afb995c3bd4d07dcbe62c
- git.kernel.org/stable/c/c0d77e3441a92d0b4958193c9ac1c3f81c6f1d1c
- git.kernel.org/stable/c/d3af6ca9a8c34bbd8cff32b469b84c9021c9e7e4
- git.kernel.org/stable/c/eaae728e7335b5dbad70966e2bd520a731fdf7b2
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 4.10 ≤ v < 5.4.298, 5.5 ≤ v < 5.10.242, 5.11 ≤ v < 5.15.191, 5.16 ≤ v < 6.1.150, 6.2 ≤ v < 6.6.104, 6.7 ≤ v < 6.12.45, 6.13 ≤ v < 6.16.5, 6.17 | 5.4.298, 5.10.242, 5.15.191, 6.1.150, 6.6.104, 6.12.45, 6.16.5 |
| 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.