CVE-2022-50579
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: arm64: ftrace: mcount ile modül PLT'lerini düzelt Li Huafei, modül PLT'leri ile mcount tabanlı ftrace'in şu commit tarafından bozulduğunu bildiriyor: a6253579977e4c6f ("arm64: ftrace: consistently handle PLTs.") Bir modül PLT'leri kullanıldığında ve bir modül çekirdekten yeterince uzağa yüklendiğinde, aralık dışında kalan tüm dallar için PLT'ler oluştururuz. Bunlar, modül PLT kodunun doğrudan değiştirmediği özel ftrace trampoline PLT'lerinden ayrıdır. mcount kullanımdayken bu bir sorundur, çünkü bir modüldeki her mcount çağrı noktası bir modül PLT'sine işaret edecek şekilde başlatılır, ancak a6253579977e4c6f commit'inden itibaren ftrace_make_nop() çağrı noktasının özel ftrace trampoline PLT'sine işaret edecek şekilde başlatıldığını varsayar ve ftrace_find_callable_addr() diğer durumları reddeder. Bu, ftrace bir çağrı noktasını ftrace_make_nop() aracılığıyla başlatmaya çalıştığında, ftrace_find_callable_addr() çağrısının `_mcount` stub'ının aralık dışında olduğunu ve ftrace PLT tarafından işlenmediğini bulacağı ve bunun sonucunda bir splat oluşacağı anlamına gelir: | ftrace_test: loading out-of-tree module taints kernel. | ftrace: no module PLT for _mcount | ------------[ ftrace bug ]------------ | ftrace failed to modify | [<ffff800029180014>] 0xffff800029180014 | actual: 44:00:00:94 | Initializing ftrace call sites | ftrace record flags: 2000000 | (0) | expected tramp: ffff80000802eb3c | ------------[ cut here ]------------ | WARNING: CPU: 3 PID: 157 at kernel/trace/ftrace.c:2120 ftrace_bug+0x94/0x270 | Modules linked in: | CPU: 3 PID: 157 Comm: insmod Tainted: G O 6.0.0-rc6-00151-gcd722513a189-dirty #22 | Hardware name: linux,dummy-virt (DT) | pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) | pc : ftrace_bug+0x94/0x270 | lr : ftrace_bug+0x21c/0x270 | sp : ffff80000b2bbaf0 | x29: ffff80000b2bbaf0 x28: 0000000000000000 x27: ffff0000c4d38000 | x26: 0000000000000001 x25: ffff800009d7e000 x24: ffff0000c4d86e00 | x23: 0000000002000000 x22: ffff80000a62b000 x21: ffff8000098ebea8 | x20: ffff0000c4d38000 x19: ffff80000aa24158 x18: ffffffffffffffff | x17: 0000000000000000 x16: 0a0d2d2d2d2d2d2d x15: ffff800009aa9118 | x14: 0000000000000000 x13: 6333626532303830 x12: 3030303866666666 | x11: 203a706d61727420 x10: 6465746365707865 x9 : 3362653230383030 | x8 : c0000000ffffefff x7 : 0000000000017fe8 x6 : 000000000000bff4 | x5 : 0000000000057fa8 x4 : 0000000000000000 x3 : 0000000000000001 | x2 : ad2cb14bb5438900 x1 : 0000000000000000 x0 : 0000000000000022 | Call trace: | ftrace_bug+0x94/0x270 | ftrace_process_locs+0x308/0x430 | ftrace_module_init+0x44/0x60 | load_module+0x15b4/0x1ce8 | __do_sys_init_module+0x1ec/0x238 | __arm64_sys_init_module+0x24/0x30 | invoke_syscall+0x54/0x118 | el0_svc_common.constprop.4+0x84/0x100 | do_el0_svc+0x3c/0xd0 | el0_svc+0x1c/0x50 | el0t_64_sync_handler+0x90/0xb8 | el0t_64_sync+0x15c/0x160 | ---[ end trace 0000000000000000 ]--- | ---------test_init----------- Bu sorunu, bir modüldeki mcount çağrı noktası başlatılırken eski yönergenin yok sayılması şeklindeki eski davranışa geri dönerek düzeltin; bu, a6253579977e4c6f commit'inden önceki davranıştı.
Nasıl düzeltilir
- Linux Linux657de36c72f57fa172a66b06f826b3f5bc56f42e, 6c93b683cedaef745884cb9d554d02ed6266b897, 0f77b6b2ba70d7c9d69ef39694e283ded9f8b5f2, 985432303cf7d4804fb2c2fdfbf0466a796d68c3, 8cfb08575c6d4585f1ce0deeb189e5c824776b04, 5.10.150, 5.15.75, 5.19 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | bc28fde90937a920f7714ec4408269cac744f796 ≤ v < 657de36c72f57fa172a66b06f826b3f5bc56f42e, db73aa9466338ec821ed2a0b01721fe4d06876b1 ≤ v < 6c93b683cedaef745884cb9d554d02ed6266b897, a6253579977e4c6f7818eeb05bf2bc65678a7187 ≤ v < 0f77b6b2ba70d7c9d69ef39694e283ded9f8b5f2, a6253579977e4c6f7818eeb05bf2bc65678a7187 ≤ v < 985432303cf7d4804fb2c2fdfbf0466a796d68c3, a6253579977e4c6f7818eeb05bf2bc65678a7187 ≤ v < 8cfb08575c6d4585f1ce0deeb189e5c824776b04, dcecc96ed16f73417de5550f384e348c9d56f279, 5.10.124 ≤ v < 5.10.150, 5.15.49 ≤ v < 5.15.75, 5.18.6 ≤ v < 5.19, 5.19 | 657de36c72f57fa172a66b06f826b3f5bc56f42e, 6c93b683cedaef745884cb9d554d02ed6266b897, 0f77b6b2ba70d7c9d69ef39694e283ded9f8b5f2, 985432303cf7d4804fb2c2fdfbf0466a796d68c3, 8cfb08575c6d4585f1ce0deeb189e5c824776b04, 5.10.150, 5.15.75, 5.19 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.