CVE-2025-68822 in Linux
Сводка
по VulDB • 11.06.2026
В ядре Linux устранена следующая уязвимость:
Ввод: alps — исправление ошибок use-after-free, вызванных dev3_register_work
Отложенный элемент работы dev3_register_work инициализируется в функции alps_reconnect() и планируется к выполнению при получении первого «сырого» (bare) пакета PS/2 от внешнего устройства PS/2, подключенного к тачпаду ALPS. При отключении устройства исходная реализация вызывает flush_workqueue() в psmouse_disconnect() для обеспечения завершения работы dev3_register_work. Однако flush_workqueue() в psmouse_disconnect() только блокируется и ожидает завершения тех элементов работы, которые уже были поставлены в очередь (queued) в workqueue до момента его вызова. Любые элементы работы, добавленные в очередь после вызова flush_workqueue(), не включаются в набор задач, ожидающих завершения операции очистки (flush). Это означает, что после завершения выполнения flush_workqueue() элемент dev3_register_work все еще может быть запланирован к выполнению. Хотя состояние psmouse устанавливается в PSMOUSE_CMD_MODE в psmouse_disconnect(), планирование dev3_register_work остается неизменным.
Состояние гонки (race condition) может возникнуть следующим образом:
CPU 0 (путь очистки) | CPU 1 (отложенная работа) 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
Добавление disable_delayed_work_sync() в alps_disconnect() обеспечивает правильную отмену dev3_register_work и предотвращает его выполнение после освобождения структуры alps_data.
Данная ошибка выявлена с помощью статического анализа.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.