Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessScan for Zephyr BLE device and enumerate GATT services
-
DeliveryConnect without pairing or encryption
-
ExploitWrite CCC descriptor to enable notifications on encrypt-required characteristic
-
ExecutionHost checks declaration attribute permissions (unconditional read - no security required)
-
PersistHost emits characteristic value over unsecured link
-
ImpactAttacker captures protected characteristic data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires all four of the following conditions simultaneously: (1) the target application declares notify or indicate characteristics with BT_GATT_PERM_READ_ENCRYPT, BT_GATT_PERM_READ_AUTHEN, or LESC-required permissions set on the Characteristic Value attribute; (2) the application passes the Characteristic Declaration attribute (not the value attribute) to bt_gatt_notify_cb() or bt_gatt_indicate(), which is the documented and common idiom; (3) the Client Characteristic Configuration descriptor for that characteristic is writable without pairing or at a lower security tier than the characteristic value itself, allowing an unauthenticated peer to enable notifications; and (4) the attacker is physically within Bluetooth radio range of the target device (AV:A). Exploitation is blocked when: applications directly pass the value attribute pointer to the notify/indicate API; when the CCC write requires the same security level as the characteristic value; or when the Bluetooth controller enforces link-layer encryption independently of the host stack. The vulnerability has no effect on characteristics declared without encrypt or authen requirements. |
| Impact | CVSS 6.5 with vector AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N reflects adjacent-network unauthenticated access with high confidentiality impact, which is accurate for the described flaw. The adjacent attack vector (AV:A) is the primary risk-limiting factor: exploitation requires Bluetooth radio proximity, ruling out internet-scale attacks. No EPSS score was provided in the input. No CISA KEV listing exists and no public exploit or proof-of-concept has been identified, reducing urgency compared to a KEV-listed issue. Real-world exploitability is further constrained by two application-level conditions that must co-exist: the application must declare notify/indicate characteristics with encrypt or authen requirements, and the CCC descriptor must be writable at a lower security tier. In many well-hardened BLE deployments both the characteristic value and its CCC would be gated at the same security level, closing the window. The high confidentiality impact is meaningful only when the protected characteristic carries sensitive data such as health metrics, keys, or proprietary sensor values. There is no integrity or availability impact, and no memory-safety concern. |
| Exploit ScenarioDerived | An attacker with a standard BLE dongle and knowledge of a target device's sensitive characteristic UUID (discoverable via GATT enumeration) connects to the Zephyr device without pairing, writes the Client Characteristic Configuration descriptor to enable notifications, and receives the full characteristic value - such as a health sensor reading or proprietary telemetry - over the unencrypted link. The server emits the data because it evaluated the Characteristic Declaration's unconditional read permission instead of the value's encryption requirement. No public proof-of-concept has been identified, but the attack requires only commodity BLE tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 01, 2026
Bluetooth GATT notification and indication paths in Zephyr RTOS 2.6.0 through 4.4.x skip the application-configured encryption, authentication, and LESC security requirements for characteristic values when the application follows the documented idiom of passing the Characteristic Declaration attribute to the notify/indicate APIs. A remote Bluetooth peer within radio range can connect without pairing and trigger the server to emit protected characteristic values over an unsecured link by writing the Client Characteristic Configuration descriptor, achieving an access-control bypass and information disclosure. No public exploit is identified at time of analysis; exploitation requires adjacent network access and specific application configuration.
RemediationAI
Upgrade to Zephyr 4.5.0 or later, which incorporates the upstream fix from commit c3386f92fe81bd10dc23e6a115e6a80a7d863546 (https://github.com/zephyrproject-rtos/zephyr/commit/c3386f92fe81bd10dc23e6a115e6a80a7d863546). The fix introduces bt_gatt_attr_resolve_value(), which maps any Characteristic Declaration attribute to the immediately following Characteristic Value attribute before bt_gatt_check_perm() is invoked in gatt_notify_cb(), gatt_indicate(), and gatt_notify_multiple_verify_params(), and also expands the Notify-Multiple permission mask to BT_GATT_PERM_READ_ENCRYPT_MASK to enforce LESC requirements. For applications unable to upgrade immediately, two workarounds are available: first, modify application code to pass the Characteristic Value attribute pointer directly to bt_gatt_notify_cb() and bt_gatt_indicate() rather than the declaration pointer, which avoids the mis-checked path entirely; second, require pairing or bonding before the CCC descriptor itself is writable, preventing unauthenticated peers from enabling notifications in the first place. The second workaround has the trade-off of restricting CCC access to paired devices only, which may affect usability in open-advertising scenarios. See the advisory at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-4w3r-v9q9-4462.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Zephyr RTOS implements the Generic Attribute Profile (GATT) per the Bluetooth Core Specification in subsys/bluetooth/host/gatt.c (CPE: cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*). Each GATT characteristic is stored as two consecutive entries in the attribute table: a Characteristic Declaration (UUID BT_UUID_GATT_CHRC) whose permissions are hard-coded to BT_GATT_PERM_READ, immediately followed by the Characteristic Value attribute that carries the application-specified security flags such as BT_GATT_PERM_READ_ENCRYPT, BT_GATT_PERM_READ_AUTHEN, or the LESC variant. The bt_gatt_notify_cb(), bt_gatt_indicate(), and gatt_notify_multiple_verify_params() functions each call bt_gatt_check_perm() against params->attr to enforce link security before sending data. When params->attr references the declaration (the documented and common idiom), the check evaluates the declaration's unconditional read permission rather than the value's security requirement, silently bypassing the intended access control. The Notify-Multiple path had an additional defect: the permission mask omitted the LE Secure Connections bit. Root cause is CWE-863 (Incorrect Authorization): the authorization decision operates on the wrong attribute object.
Know when Zephyr gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
AV:A because Bluetooth radio proximity is required; PR:N because the remote peer connects and triggers the flaw without any credentials; C:H for full disclosure of protected characteristic values; no integrity or availability impact.
Primary rating from Vendor (zephyr).
CVSS VectorVendor: zephyr
DescriptionCVE.org
Zephyr's Bluetooth host declares a GATT characteristic as two consecutive attributes: a Characteristic Declaration whose permission is hard-coded to BT_GATT_PERM_READ, and a Characteristic Value attribute that carries the application-specified security permissions (e.g. BT_GATT_PERM_READ_ENCRYPT / READ_AUTHEN / READ_LESC). The public notify and indicate APIs explicitly accept either attribute, and passing the declaration is the documented, common idiom. Before sending each notification or indication, the host re-checks link security with bt_gatt_check_perm() against params->attr in gatt_notify(), gatt_indicate(), and gatt_notify_multiple_verify_params() (subsys/bluetooth/host/gatt.c).
When the application passed the Characteristic Declaration attribute, the host correctly redirected the value handle but left params->attr pointing at the declaration, so the security check evaluated the declaration's permissions (no security required) instead of the value's. As a result the encryption/authentication/LESC requirement configured on the characteristic value was skipped. The Notify-Multiple path additionally used a mask that omitted the LE Secure Connections requirement.
A remote peer triggers the disclosure by connecting (optionally without pairing or encryption) and writing the Client Characteristic Configuration descriptor to enable notifications or indications, causing the server to emit the protected value over a link that has not reached the required security level. The impact is information disclosure / access-control bypass for characteristic values the application intended to expose only over a secured link; exposure depends on the application declaring encrypt/authen-required notify/indicate characteristics and on the CCC being writable at a lower security tier. There is no memory-safety or availability impact.
The fix adds bt_gatt_attr_resolve_value(), which maps a declaration attribute to the following value attribute before the permission check, and switches the Notify-Multiple path to the full BT_GATT_PERM_READ_ENCRYPT_MASK so the LESC requirement is also enforced.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),
An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on
Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit
Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS
Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner
Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability
Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable
DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul
zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(
Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul
The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte
Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c
EUVD-2026-51869
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB