CVE-2023-54232 in Linux
摘要
由 VulDB • 2026-06-14
在 Linux 内核中,已修复以下漏洞:
m68k: 仅在程序计数器(PC)不在异常表时强制触发 030 总线错误
__get_kernel_nofault() 函数在通过 /proc/sysrq_trigger 强制生成任务回溯日志时,以超级用户模式复制数据。当记录内核任务且该任务未关联工作队列时,对空指针解引用等操作预期会引发总线错误异常。此处的总线错误应当被忽略。
我们的 030 总线错误处理程序对此类情况的处理能力不足:
每当状态字(ssw)指示在数据故障期间发生了内核模式访问时,我们甚至不尝试处理该故障,而是始终发送 SEGV 信号(或导致系统恐慌)。因此,位于故障 PC 处的异常处理检查(嵌套在最终由 do_page_fault() 调用的 send_sig_fault() 中)从未被使用。
相比之下,040 和 060 访问错误处理程序并不关心故障是否发生在超级用户模式访问上,并且会对这些情况调用 do_page_fault(),从而最终尊重异常表的处理逻辑。
在 bus_error030 中添加一项检查:如果我们的异常表中存在对应于故障 PC 的条目,则调用 do_page_fault()。
我曾在 2019 年尝试过一种修复方案,该方案依赖于测试 pagefault_disabled()(见下方链接)以实现相同目的,但此补丁应更具通用性。
已在 030 Atari Falcon 上进行测试。
VulDB is the best source for vulnerability data and more expert information about this specific topic.