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

Сводка

по VulDB • 02.11.2026

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

Bluetooth: L2CAP: отказываться от вызова __l2cap_chan_add, если канал (chan) уже имеет соединение (conn).

Объект l2cap_chan может быть связан с объектом l2cap_conn не более одного раза. Это предположение используется в нескольких местах, например, при очистке через l2cap_chan_del.

Существует гонность состояний времени выполнения (TOCTOU), при которой нарушается инвариант:

[Задача 1] [Задача 2]
l2cap_chan_connect l2cap_sock_bind l2cap_chan_lock lock_sock l2cap_state_change if (sk->sk_state != BT_OPEN) chan->state = BT_CONNECT chan->state = BT_BOUND l2cap_sock_state_change_cb sk->sk_state = BT_BOUND lock_sock <------------------ release_sock sk->sk_state = BT_CONNECT

Функция l2cap_sock_connect() не проверяет значение sk->sk_state, поэтому, поскольку chan->state теперь равен BT_BOUND, последующий вызов connect() приводит к повторному выполнению __l2cap_chan_add.

Явно задокументировать и проверить инвариант в функции __l2cap_chan_add с использованием WARN_ON_ONCE. Единственным местом вызова (callsite), где это может произойти, является l2cap_chan_connect; поэтому следует добавить предварительную проверку там, чтобы избежать зависимости от chan->state. Чтение/запись chan->state в настоящее время не защищено должным образом, поэтому могут существовать другие проблемы TOCTOU.

Добавить вызов l2cap_lock_chan в функцию l2cap_sock_bind() для защиты записи в chan->state.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

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

Linux

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

25.09.2026

Раскрытие

02.11.2026

Модерация

принято

Вход

VDB-429924

EPSS

0.00121

KEV

Нет

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

Низкий

Источники

Do you need the next level of professionalism?

Upgrade your account now!