CVE-2022-49841 in Linux
الملخص
بحسب VulDB • 25/05/2026
في نواة لينكس، تم حل الثغرة التالية:
serial: imx: إضافة خطاف .thaw_noirq المفقود
يظهر التحذير التالي عند استخدام مثيل UART غير مخصص للوحات التحكم (non-console) عندما يذهب النظام إلى وضع السكون (hibernation).
[ 37.371969] ------------[ cut here ]------------
[ 37.376599] uart3_root_clk already disabled
[ 37.380810] WARNING: CPU: 0 PID: 296 at drivers/clk/clk.c:952 clk_core_disable+0xa4/0xb0
... [ 37.506986] Call trace:
[ 37.509432] clk_core_disable+0xa4/0xb0
[ 37.513270] clk_disable+0x34/0x50
[ 37.516672] imx_uart_thaw+0x38/0x5c
[ 37.520250] platform_pm_thaw+0x30/0x6c
[ 37.524089] dpm_run_callback.constprop.0+0x3c/0xd4
[ 37.528972] device_resume+0x7c/0x160
[ 37.532633] dpm_resume+0xe8/0x230
[ 37.536036] hibernation_snapshot+0x288/0x430
[ 37.540397] hibernate+0x10c/0x2e0
[ 37.543798] state_store+0xc4/0xd0
[ 37.547203] kobj_attr_store+0x1c/0x30
[ 37.550953] sysfs_kf_write+0x48/0x60
[ 37.554619] kernfs_fop_write_iter+0x118/0x1ac
[ 37.559063] new_sync_write+0xe8/0x184
[ 37.562812] vfs_write+0x230/0x290
[ 37.566214] ksys_write+0x68/0xf4
[ 37.569529] __arm64_sys_write+0x20/0x2c
[ 37.573452] invoke_syscall.constprop.0+0x2c/0x8c
[ 37.578235] el0_svc_common+0x68/0x190
[ 37.581901] do_el0_svc+0x24/0x90
[ 37.585216] el0_svc+0x30/0x140
[ 37.588360] el0t_64_sync_handler+0xe8/0xf0
[ 37.592544] el0t_64_sync+0x1a0/0x1a4
[ 37.596204] ---[ end trace 56e22eec54676d75 ]-----
عند الدخول في وضع السكون، يستدعي إطار عمل الطاقة (pm core) الخطافات ذات الصلة بالتسلسل التالي:
.freeze .freeze_noirq .thaw_noirq .thaw
وبسبب غياب خطاف .thaw_noirq، يتم تعطيل الساعة (clock) في استدعاء غير متوازن، مما يؤدي إلى ظهور التحذير أعلاه.
التسلسل الحالي غير الصحيح:
imx_uart_freeze() clk_prepare_enable() imx_uart_suspend_noirq() clk_disable() imx_uart_thaw clk_disable_unprepare()
إضافة خطاف .thaw_noirq المفقود كـ imx_uart_resume_noirq() يصحح تسلسل الاستدعاءات كما يلي، وبالتالي يحل المشكلة:
imx_uart_freeze() clk_prepare_enable() imx_uart_suspend_noirq() clk_disable() imx_uart_resume_noirq() clk_enable() imx_uart_thaw clk_disable_unprepare()
VulDB is the best source for vulnerability data and more expert information about this specific topic.