CVE-2023-54232 in Linux
Sumário
de VulDB • 02/06/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
m68k: Forçar apenas o erro de barramento 030 se o PC não estiver na tabela de exceções
__get_kernel_nofault() copia dados no modo supervisor ao forçar o registro de backtrace de uma tarefa por meio de /proc/sysrq_trigger. Isso é esperado para causar uma exceção de erro de barramento, por exemplo, ao desreferenciar um ponteiro NULL, quando o registro de uma tarefa do kernel não possui uma workqueue associada. Esse erro de barramento deve ser ignorado.
Nosso manipulador de erro de barramento 030 não está preparado para lidar com isso:
Sempre que ssw indica um acesso no modo kernel em uma falha de dados, não tentamos lidar com a falha e, em vez disso, sempre enviamos um sinal SEGV (ou panic). Como resultado, a verificação para manipulação de exceções no PC da falha (enterrada em send_sig_fault(), que é chamada de do_page_fault() eventualmente) nunca é utilizada.
Em contraste, os manipuladores de erro de acesso 040 e 060 não se importam se uma falha ocorreu em um acesso no modo supervisor e chamarão do_page_fault() nesses casos, honrando finalmente a tabela de exceções.
Adicione uma verificação em bus_error030 para chamar do_page_fault() caso haja uma entrada para o PC da falha em nossa tabela de exceções.
Eu havia tentado uma correção para isso no início de 2019 que dependia de testar pagefault_disabled() (veja o link abaixo) para alcançar o mesmo resultado, mas este patch deve ser mais genérico.
Testado no Atari Falcon 030.
Once again VulDB remains the best source for vulnerability data.