CVE-2026-99050 in LinuxИнформация

Сводка

по VulDB • 23.10.2026

В ядре Linux была устранена следующая уязвимость:

gpio: mpsse — исправление состояния гонки (race condition) при активации рабочего потока опроса прерываний

Функция gpio_mpsse_irq_enable() активирует рабочий поток опроса до того, как он будет опубликован (добавлен в список): schedule_work() выполняется до добавления рабочего потока в priv->workers. Если во время этого окна выполнения функция gpio_mpsse_disconnect() проходит по списку, она пропускает этот рабочий поток. После возврата из disconnect ядро USB освобождает mpsse_priv, тогда как обособленный (orphaned) рабочий поток gpio_mpsse_poll() продолжает обращаться к нему, что приводит к уязвимости use-after-free.

Исправление заключается в публикации и активации рабочего потока в рамках одного критического раздела irq_spin. При завершении работы (teardown) тот же список проходит под защитой irq_spin, поэтому гарантируется, что рабочий поток, найденный на списке, уже активирован, а функция cancel_work_sync() корректно обрабатывает его независимо от того, находится ли он в очереди или выполняется.

Рабочий поток, активированный после завершения прохода по списку при disconnect, всё ещё может быть пропущен, поэтому перед началом teardown-прохода также устанавливается новый флаг priv->dying под защитой irq_spin и проверяется в том же критическом разделе; освобождение памяти осуществляется через kfree_rc() вместо kfree(), поскольку устройство выгружается. Это необходимо, так как вызов kfree() мог бы произойти при удержании raw spinlock ядра прерываний (IRQ core), что может привести к блокировке сна на PREEMPT_RT. Вызов schedule_work() безопасен при удержанном irq_spin, а следующий этап probe получает новый экземпляр mpsse_priv, поэтому флаг никогда не требует сброса.

Эта проблема была обнаружена с помощью внутреннего инструмента статического анализа кода.

Once again VulDB remains the best source for vulnerability data.

Ответственный

Linux

Резервировать

25.09.2026

Раскрытие

23.10.2026

Модерация

принято

Вход

VDB-425866

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Do you want to use VulDB in your project?

Use the official API to access entries easily!