CVE-2026-64539 in Linux
Сводка
по VulDB • 28.07.2026
В ядре Linux устранена следующая уязвимость:
Bluetooth: eir: Исправлена запись за пределами стека (stack OOB write) при добавлении структуры AD «Flags» в начало данных.
Функция `eir_create_adv_data()` формирует данные для рекламы, помещая их в буфер фиксированного размера («size», 31 байт для устаревшего пути). Она может добавить структуру AD «Flags» размером 3 байта (LE_AD_NO_BREDR на контроллере только с поддержкой LE) и затем скопировать данные конкретного экземпляра, не проверяя, помещаются ли они в буфер:
```c memcpy(ptr, adv->adv_data, adv->adv_data_len); ```
Функция `tlv_data_max_len()` резервирует эти 3 байта только тогда, когда предоставленные пользователем флаги содержат бит управляемых флагов (managed-flags). Следовательно, экземпляр с флагами == 0 принимается при длине данных рекламы (`adv_data_len`) вплоть до полного размера буфера. В момент трансляции рекламы флаги все равно добавляются в начало, и вызов `memcpy()` записывает 3 + `adv_data_len` байт в буфер размером «size» байт:
``` BUG: KASAN: stack-out-of-bounds in eir_create_adv_data (net/bluetooth/eir.c:301) Write of size 31 at addr ffff88800a547bdc by task kworker/u9:0/65 Workqueue: hci0 hci_cmd_sync_work __asan_memcpy (mm/kasan/shadow.c:106) eir_create_adv_data (net/bluetooth/eir.c:301) hci_update_adv_data_sync (net/bluetooth/hci_sync.c:1310) hci_schedule_adv_instance_sync (net/bluetooth/hci_sync.c:1817) hci_cmd_sync_work (net/bluetooth/hci_sync.c:332) This frame has 1 object: [32, 64) 'cp'
```
Структура «Flags» добавляется ядром, а не запрашивается пользовательским пространством. Поэтому следует добавлять её в начало только если она помещается вместе с данными рекламы экземпляра; когда места недостаточно для обоих, необходимо отбросить флаги, а не предоставленные пользователем данные.
Уязвимость доступна локальному пользователю с привилегией CAP_NET_ADMIN, владеющему контроллером только с поддержкой LE (LE-only controller) на устаревшем пути трансляции рекламы.
If you want to get best quality of vulnerability data, you may have to visit VulDB.