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

Сводка

по VulDB • 16.08.2026

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

can: isotp: исправлена гонка условий (race condition) use-after-free при одновременном выполнении NETDEV_UNREGISTER

Функция `isotp_release()` искала привязанное сетевое устройство с помощью `dev_get_by_index()`, используя сохраненный идентификатор интерфейса (`ifindex`). Во время процедуры отмены регистрации устройства оно удаляется из хеш-таблицы по `ifindex` до того, как будет вызвана цепочка уведомлений (notifier chain) NETDEV_UNREGISTER. В результате одновременное выполнение `isotp_release()` может не найти устройство, полностью пропустить вызов `can_rx_unregister()`, но при этом продолжить освобождение сокета. Поскольку к этому моменту `isotp_release()` уже удалила себя из списка уведомлений isotp, функция `isotp_notify()` никогда не получит возможности выполнить очистку, что приведет к сохранению «зависшего» фильтра CAN, который продолжает указывать на уже освобожденный сокет.

Исправление выполнено тем же способом, что и в файле raw.c: начиная с момента вызова bind() сохраняется отслеживаемая ссылка на привязанное сетевое устройство (`so->dev`/`so->dev_tracker`) внутри сокета вместо повторного разрешения устройства по `ifindex`. Кроме того, операции bind()/release() синхронизируются с помощью блокировки `rtnl_lock()`, чтобы значение `so->dev` всегда было согласовано с тем состоянием, которое видит обработчик уведомления NETDEV_UNREGISTER. Значение `so->dev` остается действительным независимо от удаления из хеш-таблицы по ifindex и очищается только той функцией (`isotp_release()` или `isotp_notify()`, которая выполнится первой), поэтому фильтр всегда удаляется ровно один раз.

Функция `isotp_bind()` теперь возвращает ошибку `-EAGAIN` при попытке (повторной) привязки, если состояние `so->[tx|rx].state` еще не равно `ISOTP_IDLE`. Это предотвращает срабатывание таймера, оставшегося от предыдущего события NETDEV_UNREGISTER, на новом значении `so->ifindex`. Обе проверки выполняются в одном разделе кода, защищенном блокировкой `lock_sock()`, поэтому отсутствует окно возможностей для пропуска одновременного вызова `isotp_notify()`, который мог бы очистить флаг `so->bound`.

Be aware that VulDB is the high quality source for vulnerability data.

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

Linux

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

09.08.2026

Раскрытие

15.08.2026

Модерация

принято

Вход

VDB-390606

EPSS

0.00209

KEV

Нет

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

Очень низкий

Источники

Want to stay up to date on a daily basis?

Enable the mail alert feature now!