In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: eir: Fix stack OOB write when prepending the Flags AD
eircreateadvdata() builds the advertising data into a fixed-size buffer ("size", 31 for the legacy path). It may prepend a 3-byte "Flags" AD structure (LEADNOBREDR on an LE-only controller) and then copies the per-instance data without checking that it still fits:
memcpy(ptr, adv->adv_data, adv->adv_data_len);
tlvdatamaxlen() only reserves those 3 bytes when the user-supplied flags carry a managed-flags bit, so an instance added with flags == 0 is accepted with advdatalen up to the full buffer. At advertise time the flags are still prepended, and the memcpy() writes 3 + advdata_len bytes into the size-byte buffer:
BUG: KASAN: stack-out-of-bounds in eircreateadvdata (net/bluetooth/eir.c:301) Write of size 31 at addr ffff88800a547bdc by task kworker/u9:0/65 Workqueue: hci0 hcicmdsyncwork __asanmemcpy (mm/kasan/shadow.c:106) eircreateadvdata (net/bluetooth/eir.c:301) hciupdateadvdatasync (net/bluetooth/hcisync.c:1310) hcischeduleadvinstancesync (net/bluetooth/hcisync.c:1817) hcicmdsyncwork (net/bluetooth/hcisync.c:332) This frame has 1 object: [32, 64) 'cp'
The "Flags" structure is added by the kernel, not requested by userspace, so only prepend it when it fits together with the instance advertising data; when there is no room for both, drop the flags rather than the user-provided data.
Reachable by a local user with CAPNETADMIN owning an LE-only controller on the legacy advertising path.
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64539.json"
}