CVE-2026-74388
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: ALSA: seq: oss: Daxili SysEx məlumatları ilə hadisələrin idarə edilməsi zamanı UAF xətasının düzəldilməsi OSS sekvenseri daxil olan MIDI baytlarını daha sonra göndəriləcək sekvenser hadisəsinə çevirir (snd_seq_oss_process_event() tərəfindən çağırılan snd_seq_oss_midi_putc() funksiyasında). Əgər bu SysEx məlumatıdırsa, hadisə yazısı orijinal SysEx baytlarına istinad edən data.ext.ptr göstəricisini saxlayır və həmin məlumatlar daha sonra göndərilmə zamanı hovuza kopyalanır. Problem ondadır ki, əgər göndərmədən əvvəl sekvenser portu eyni vaxtda bağlanarsa, OSS sekvenser nüvəsi resursları azad edir (snd_seq_oss_midi_check_exit_port() funksiyasında), lakin gözləyən hadisə köhnəlmiş göstəricini saxlaya bilər ki, bu da sonda növbəti göndərmə zamanı UAF-ə səbəb olur. Xoşbəxtlikdən, OSS MIDI cihazına giriş üçün artıq bir istinad sayğacı mexanizmi (snd_use_lock_t) mövcuddur və yuxarıdakı problemi həll etmək üçün biz sadəcə istinad sayğacını hadisə göndərilənə qədər uzatmalıyıq. Bu yamla snd_seq_oss_process_event() funksiyası genişləndirilərək istinad sayğacı obyektini geri qaytarır, həmin obyekt isə çağıran tərəfdə verilmiş hadisə ilə sekvenser göndəricisi çağırıldıqdan sonra azad edilir. Orijinal hesabatla bağlı KASAN hesabatı aşağıdakı kimidir: KASAN slab-use-after-free in snd_seq_event_dup+0x40c/0x470 RIP: 0033:0x7f2cb66a6340 Read of size 6 Call trace: dump_stack_lvl+0x73/0xb0 (?:?) print_report+0xd1/0x650 (?:?) srso_alias_return_thunk+0x5/0xfbef5 (?:?) __virt_addr_valid+0x1a7/0x340 (?:?) kasan_complete_mode_report_info+0x64/0x200 (?:?) kasan_report+0xf7/0x130 (?:?) snd_seq_event_dup+0x40c/0x470 (?:?) kasan_check_range+0x10c/0x1c0 (?:?) __asan_memcpy+0x27/0x70 (?:?) snd_seq_event_dup+0x9/0x470 (?:?) snd_seq_client_enqueue_event+0x139/0x240 (?:?) _raw_spin_unlock_irqrestore+0x4b/0x60 (?:?) snd_seq_kernel_client_enqueue+0x102/0x120 (?:?) snd_seq_oss_write+0x416/0x4e0 (?:?) apparmor_file_permission+0x20/0x30 (?:?) odev_write+0x3b/0x60 (?:?) vfs_write+0x1ce/0x850 (?:?) lock_release+0xc8/0x2a0 (?:?) __kasan_check_write+0x18/0x20 (?:?) __mutex_unlock_slowpath+0x129/0x510 (?:?) ksys_write+0xe1/0x180 (?:?) mutex_unlock+0x16/0x20 (?:?) odev_ioctl+0x65/0xc0 (?:?) __x64_sys_write+0x46/0x60 (?:?) x64_sys_call+0x7d/0x20d0 (?:?) do_syscall_64+0xc1/0x360 (arch/x86/entry/syscall_64.c:87) entry_SYSCALL_64_after_hwframe+0x77/0x7f (?:?)
Necə düzəltmək olar
- Linux Linux3e85e690e787fa42f35e1bd9d18a7979c201d165, bc963e193b314f1441082e8b1ffe15eb255d0a44, e96824274239ae4cd2f7b712644441cdc72c81a3, 6dc781778b595be94c31395b2cb167f65145d91f, 7aad70cabd8f34cf11a9593fcd3f2ac3f5496943, 7c349b4f2a603202fb8c363bd2774a22ac2fddf3 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 3e85e690e787fa42f35e1bd9d18a7979c201d165, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < bc963e193b314f1441082e8b1ffe15eb255d0a44, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < e96824274239ae4cd2f7b712644441cdc72c81a3, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 6dc781778b595be94c31395b2cb167f65145d91f, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 7aad70cabd8f34cf11a9593fcd3f2ac3f5496943, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 7c349b4f2a603202fb8c363bd2774a22ac2fddf3, 2.6.12 | 3e85e690e787fa42f35e1bd9d18a7979c201d165, bc963e193b314f1441082e8b1ffe15eb255d0a44, e96824274239ae4cd2f7b712644441cdc72c81a3, 6dc781778b595be94c31395b2cb167f65145d91f, 7aad70cabd8f34cf11a9593fcd3f2ac3f5496943, 7c349b4f2a603202fb8c363bd2774a22ac2fddf3 |
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.