Skip to main content

Linux Kernel EUVDEUVD-2026-49590

| CVE-2026-64539 HIGH
2026-07-27 Linux GHSA-rxg5-jr9r-8pc7
7.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
6.0 MEDIUM

Requires local CAP_NET_ADMIN and specific BLE hardware, so AV:L/PR:H; a 3-byte kernel stack overwrite yields integrity/availability impact but no direct information disclosure (C:N).

3.1 AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:H/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat
7.0 MEDIUM
qualitative

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Jul 30, 2026 - 06:47 vuln.today
CVSS changed
Jul 30, 2026 - 06:37 NVD
7.8 (HIGH)
Patch available
Jul 27, 2026 - 21:17 EUVD
CVE Published
Jul 27, 2026 - 20:10 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 27, 2026 - 20:10 cve.org
HIGH 7.8

DescriptionCVE.org

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: eir: Fix stack OOB write when prepending the Flags AD

eir_create_adv_data() builds the advertising data into a fixed-size buffer ("size", 31 for the legacy path). It may prepend a 3-byte "Flags" AD structure (LE_AD_NO_BREDR 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);

tlv_data_max_len() 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 adv_data_len up to the full buffer. At advertise time the flags are still prepended, and the memcpy() writes 3 + adv_data_len bytes into the size-byte buffer:

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'

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 CAP_NET_ADMIN owning an LE-only controller on the legacy advertising path.

AnalysisAI

Stack out-of-bounds write in the Linux kernel Bluetooth subsystem (net/bluetooth/eir.c) lets a local privileged user corrupt kernel stack memory when an LE-only controller assembles legacy advertising data. eir_create_adv_data() prepends a 3-byte 'Flags' AD structure to a fixed 31-byte buffer without accounting for it in the length check, so an advertising instance created with flags == 0 and a maximal adv_data_len causes a 3-byte overflow past the buffer during hci_update_adv_data_sync(). There is no public exploit identified at time of analysis and EPSS is low (0.16%), consistent with a local, capability-gated memory-corruption bug rather than a mass-exploitation target.

Technical ContextAI

The flaw lives in the Bluetooth Low Energy advertising path of the Linux kernel. eir_create_adv_data() builds Extended Inquiry Response / advertising data into a fixed-size buffer (31 bytes on the legacy path). tlv_data_max_len() only reserves 3 bytes for the managed 'Flags' AD element when the user-supplied flags actually carry a managed-flags bit; an instance registered with flags == 0 therefore passes validation with adv_data_len up to the full 31 bytes. At advertise time the kernel still unconditionally prepends the LE_AD_NO_BREDR Flags element on an LE-only controller, and the subsequent memcpy(ptr, adv->adv_data, adv->adv_data_len) writes 3 + adv_data_len bytes into the size-byte stack buffer, overflowing the 'cp' stack object. This is a classic off-by-reservation stack buffer overflow (CWE-787 Out-of-bounds Write / CWE-121 stack-based buffer overflow), even though the CVE record lists CWE as N/A. The fix only prepends the Flags element when it fits alongside the instance data, dropping the kernel-added flags rather than truncating user data.

RemediationAI

Vendor-released patch: update to a fixed Linux kernel build - 6.1.178, 6.12.97, 6.18.40, or 7.1.5 (fix also in 7.2-rc1) or later on the corresponding stable branch - via your distribution's kernel package updates, then reboot. The fix commits are available at git.kernel.org (e.g. https://git.kernel.org/stable/c/09301f1fdf2aef8cce34d0c4650c30e7edb1ced9); track the CVE at https://nvd.nist.gov/vuln/detail/CVE-2026-64539. Where immediate patching is not possible, reduce exposure by removing CAP_NET_ADMIN from untrusted local users and containers (the capability is required to add advertising instances), unloading or blacklisting the Bluetooth stack (rmmod/modprobe blacklist of bluetooth and btusb) on servers that do not need BLE, or disabling/removing the LE-only Bluetooth controller so the vulnerable legacy advertising path is never exercised; the trade-off of these controls is loss of all Bluetooth/BLE advertising functionality on the host.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 16.0 Not-Affected

Share

EUVD-2026-49590 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy