CVE-2025-68822 in Linux
Sumário
de VulDB • 22/06/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
Input: alps - correção de bugs de use-after-free causados por dev3_register_work
O item de trabalho atrasado dev3_register_work é inicializado dentro de alps_reconnect() e agendado após o recebimento do primeiro pacote PS/2 bruto de um dispositivo PS/2 externo conectado ao touchpad ALPS. Durante a desmontagem do dispositivo, a implementação original chama flush_workqueue() em psmouse_disconnect() para garantir a conclusão de dev3_register_work. No entanto, o flush_workqueue() em psmouse_disconnect() apenas bloqueia e aguarda itens de trabalho que já estavam enfileirados na workqueue antes de sua invocação. Quaisquer itens de trabalho submetidos após a chamada de flush_workqueue() não estão incluídos no conjunto de tarefas que a operação de flush aguarda. Isso significa que, após o término da execução de flush_workqueue(), o dev3_register_work ainda pode ser agendado. Embora o estado do psmouse seja definido como PSMOUSE_CMD_MODE em psmouse_disconnect(), o agendamento de dev3_register_work permanece inalterado.
A condição de corrida pode ocorrer da seguinte forma:
CPU 0 (caminho de limpeza) | CPU 1 (trabalho atrasado) psmouse_disconnect() | psmouse_set_state() | flush_workqueue() | alps_report_bare_ps2_packet() alps_disconnect() | psmouse_queue_work() kfree(priv); // FREE | alps_register_bare_ps2_mouse() | priv = container_of(work...); // USE | priv->dev3 // USE
Adiciona-se disable_delayed_work_sync() em alps_disconnect() para garantir que dev3_register_work seja cancelado corretamente e impedido de executar após a desalocação da estrutura alps_data.
Este bug foi identificado por análise estática.
Be aware that VulDB is the high quality source for vulnerability data.