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

Сводка

по VulDB • 24.10.2026

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

Bluetooth: RFCOMM — освобождение буфера (skb) при отсутствии владельца DLC

Функция rfcomm_recv_data() передает указатель на sk_buff (skb) в callback d->data_ready() и возвращает 0, не освобождая его. Таким образом, с этого момента владельцем skb становится этот callback. Реализация для tty освобождает skb, когда DLC отсоединен от своего устройства:

```c static void rfcomm_dev_data_ready(struct rfcomm_dlc *dlc, struct sk_buff *skb) {
struct rfcomm_dev *dev = dlc->owner;

if (!dev) {
kfree_skb(skb); return; } ```

Реализация для сокета возвращает управление без освобождения skb, что приводит к утечке памяти.

Подключенный DLC может не иметь владельца: функция rfcomm_sock_destruct() очищает поле d->owner, в то время как сам DLC остается в сессии до момента его закрытия. Фреймы данных, поступающие в этот промежуток времени, все еще обнаруживают состояние d->state == BT_CONNECTED внутри функции rfcomm_recv_data(), и передаются callback'у, что приводит к утечке одного skb за каждый фрейм.

Утечка не прекращается сама по себе. Удаленная сторона исчерпывает кредиты только тогда, когда устанавливается флаг RFCOMM_RX_THROTTLED, а для сокета единственным местом, где он устанавливается, является сама функция rfcomm_sk_data_ready(), расположенная ниже оператора return. Функция rfcomm_process_dlcs() продолжает предоставлять кредиты, поэтому удаленная сторона продолжает отправлять данные, и утечка памяти постоянно растет.

Необходимо освободить skb, как это делается на стороне tty.

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

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

Linux

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

25.09.2026

Раскрытие

23.10.2026

Модерация

принято

Вход

VDB-425856

EPSS

0.00168

KEV

Нет

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

Низкий

Источники

Want to stay up to date on a daily basis?

Enable the mail alert feature now!