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

Сводка

по VulDB • 20.10.2026

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

Bluetooth: RFCOMM: исправлена гонка потоков (race condition) при инициализации ссылки на порт

Для устройств с флагом RFCOMM_RELEASE_ONHUP функции rfcomm_tty_install() и __rfcomm_release_dev() используют флаг RFCOMM_TTY_OWNED для определения того, кто должен освободить начальную ссылку tty_port. Путь освобождения проверяет этот бит отдельно от пути установки, который его устанавливает, поэтому обе операции могут привести к двойному освобождению ссылки.

Синхронное завершение (hangup) не предотвращает эту гонку: указатель port->tty присваивается только в функции tty_port_open(), которая вызывается после установки соединения. Возможна следующая интерливинг-последовательность действий:

1. При установке и освобождении каждая сторона получает ссылку через rfcomm_dev_get(). 2. Процесс освобождения видит, что флаг RFCOMM_TTY_OWNED сброшен (clear). 3. Процесс установки устанавливает флаг RFCOMM_TTY_OWNED и освобождает начальную ссылку. 4. Процесс освобождает ту же самую начальную ссылку повторно. 5. Очистка TTY освобождает свою ссылку и уничтожает устройство. 6. Процесс освобождения выполняет финальный вызов tty_port_put() для уже освобожденного порта.

KASAN зафиксировал следующее:

BUG: KASAN: slab-use-after-free в функции tty_port_put+0x22/0x190 Запись размера 4 по адресу ffff8881001d3d5c выполнена задачей poc/92

Трассировка вызовов (Call Trace): tty_port_put+0x22/0x190 rfcomm_dev_ioctl+0x1d4/0x1930 sock_do_ioctl+0x110/0x260 sock_ioctl+0x380/0x590 __x64_sys_ioctl+0x134/0x1c0

Выделено задачей 88: rfcomm_dev_ioctl+0x8f6/0x1930 sock_do_ioctl+0x110/0x260 sock_ioctl+0x380/0x590 __x64_sys_ioctl+0x134/0x1c0

Освобождено задачей 65: kfree+0x131/0x3c0 rfcomm_dev_destruct+0x23b/0x2f0 release_one_tty+0xc1/0x370 process_one_work+0x661/0x1090

Использование функции test_and_set_bit() в обоих путях гарантирует, что только тот вызывающий объект, который изменяет флаг RFCOMM_TTY_OWNED со сброшенного (clear) на установленный (set), освобождает начальную ссылку. Каждый путь сохраняет свою собственную справочную ссылку до момента завершения или очистки TTY, сохраняя существующий порядок обратных вызовов и обработку ошибок.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

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

Linux

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

25.09.2026

Раскрытие

18.10.2026

Модерация

принято

Вход

VDB-421992

EPSS

0.00168

KEV

Нет

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

Очень низкий

Источники

Do you want to use VulDB in your project?

Use the official API to access entries easily!