CVE-2022-49567
Təsvir
Linux kernelində aşağıdakı zəiflik aradan qaldırılıb: mm/mempolicy: mpol_rebind_policy() funksiyasında ilkinləşdirilməmiş dəyər problemi düzəldilib mpol_set_nodemask() (mm/mempolicy.c) funksiyası pol->mode MPOL_LOCAL olduqda nodemask-ı qurmur. mpol_rebind_policy() (mm/mempolicy.c) funksiyasında pol->w.cpuset_mems_allowed sahəsinə müraciət etməzdən əvvəl pol->mode yoxlanılmalıdır. BUG: KMSAN: uninit-value in mpol_rebind_policy mm/mempolicy.c:352 [inline] BUG: KMSAN: uninit-value in mpol_rebind_task+0x2ac/0x2c0 mm/mempolicy.c:368 mpol_rebind_policy mm/mempolicy.c:352 [inline] mpol_rebind_task+0x2ac/0x2c0 mm/mempolicy.c:368 cpuset_change_task_nodemask kernel/cgroup/cpuset.c:1711 [inline] cpuset_attach+0x787/0x15e0 kernel/cgroup/cpuset.c:2278 cgroup_migrate_execute+0x1023/0x1d20 kernel/cgroup/cgroup.c:2515 cgroup_migrate kernel/cgroup/cgroup.c:2771 [inline] cgroup_attach_task+0x540/0x8b0 kernel/cgroup/cgroup.c:2804 __cgroup1_procs_write+0x5cc/0x7a0 kernel/cgroup/cgroup-v1.c:520 cgroup1_tasks_write+0x94/0xb0 kernel/cgroup/cgroup-v1.c:539 cgroup_file_write+0x4c2/0x9e0 kernel/cgroup/cgroup.c:3852 kernfs_fop_write_iter+0x66a/0x9f0 fs/kernfs/file.c:296 call_write_iter include/linux/fs.h:2162 [inline] new_sync_write fs/read_write.c:503 [inline] vfs_write+0x1318/0x2030 fs/read_write.c:590 ksys_write+0x28b/0x510 fs/read_write.c:643 __do_sys_write fs/read_write.c:655 [inline] __se_sys_write fs/read_write.c:652 [inline] __x64_sys_write+0xdb/0x120 fs/read_write.c:652 do_syscall_x64 arch/x86/entry/common.c:51 [inline] do_syscall_64+0x54/0xd0 arch/x86/entry/common.c:82 entry_SYSCALL_64_after_hwframe+0x44/0xae İlkinləşdirilməmiş dəyər burada yaranıb: slab_post_alloc_hook mm/slab.h:524 [inline] slab_alloc_node mm/slub.c:3251 [inline] slab_alloc mm/slub.c:3259 [inline] kmem_cache_alloc+0x902/0x11c0 mm/slub.c:3264 mpol_new mm/mempolicy.c:293 [inline] do_set_mempolicy+0x421/0xb70 mm/mempolicy.c:853 kernel_set_mempolicy mm/mempolicy.c:1504 [inline] __do_sys_set_mempolicy mm/mempolicy.c:1510 [inline] __se_sys_set_mempolicy+0x44c/0xb60 mm/mempolicy.c:1507 __x64_sys_set_mempolicy+0xd8/0x110 mm/mempolicy.c:1507 do_syscall_x64 arch/x86/entry/common.c:51 [inline] do_syscall_64+0x54/0xd0 arch/x86/entry/common.c:82 entry_SYSCALL_64_after_hwframe+0x44/0xae KMSAN: uninit-value in mpol_rebind_task (2) https://syzkaller.appspot.com/bug?id=d6eb90f952c2a5de9ea718a1b873c55cb13b59dc Bu yama, görünür, aşağıdakı xətanı da düzəldir. KMSAN: uninit-value in mpol_rebind_mm (2) https://syzkaller.appspot.com/bug?id=f2fecd0d7013f54ec4162f60743a2b28df40926b İlkinləşdirilməmiş dəyər mpol_rebind_policy() funksiyasındakı pol->w.cpuset_mems_allowed sahəsidir. syzkaller reproduktoru mpol_new() funksiyasının başlanğıcına çatdıqda, mpol_new() mm/mempolicy.c do_mbind() mm/mempolicy.c kernel_mbind() mm/mempolicy.c `mode` 1 (MPOL_PREFERRED), nodes_empty(*nodes) `true` və `flags` 0 olur. Sonra mode = MPOL_LOCAL; ... policy->mode = mode; policy->flags = flags; icra olunur. Beləliklə, mpol_set_nodemask() funksiyasında, mpol_set_nodemask() mm/mempolicy.c do_mbind() kernel_mbind() pol->mode 4 (MPOL_LOCAL) olur, `pol` daxilindəki `nodemask` ilkinləşdirilmir və mpol_rebind_policy() funksiyasında ona müraciət edilir.
Necə düzəltmək olar
- linux linux_kernel4.9.325, 4.14.290, 4.19.254, 5.4.208, 5.10.134, 5.15.58, 5.18.15 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | v < 4.9.325, 4.10 ≤ v < 4.14.290, 4.15 ≤ v < 4.19.254, 4.20 ≤ v < 5.4.208, 5.5 ≤ v < 5.10.134, 5.11 ≤ v < 5.15.58, 5.16 ≤ v < 5.18.15 | 4.9.325, 4.14.290, 4.19.254, 5.4.208, 5.10.134, 5.15.58, 5.18.15 |
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.