CVE-2026-15894
Last modified
CVE-2026-15894 is a high-severity vulnerability rated 8.8/10 on the CVSS scale. The Bluetooth Mesh On-Demand Private Proxy solicitation handler in subsys/bluetooth/mesh/solicitation.c copies a received Solicitation PDU into a fixed 17-byte stack buffer without bounding the source length. In sol_pdu_decrypt(), out is allocated as NET_BUF_SIMPLE(17) and then filled with net_buf_simple_add_mem(out, in->data, in->len); net_buf_simple_add() guards its tailroom only with __ASSERT_NO_MSG, which is compiled out in production builds, so when in->len > 17 the underlying memcpy writes attacker-controlled bytes past the 17-byte stack buffer. EPSS estimates a 0.31% chance of exploitation in the next 30 days.
Description
The Bluetooth Mesh On-Demand Private Proxy solicitation handler in subsys/bluetooth/mesh/solicitation.c copies a received Solicitation PDU into a fixed 17-byte stack buffer without bounding the source length. In sol_pdu_decrypt(), out is allocated as NET_BUF_SIMPLE(17) and then filled with net_buf_simple_add_mem(out, in->data, in->len); net_buf_simple_add() guards its tailroom only with __ASSERT_NO_MSG, which is compiled out in production builds, so when in->len > 17 the underlying memcpy writes attacker-controlled bytes past the 17-byte stack buffer. The copy occurs before any decryption or authentication, so no key material is required to trigger it. The oversized length arises because the mesh scan callback in subsys/bluetooth/mesh/adv.c calls net_buf_simple_restore() before dispatching to bt_mesh_sol_recv(), leaving buf->len covering the entire remaining advertising payload rather than just the Solicitation Service Data. After the parser locates the Service Data AD and consumes the Identification Type byte, the remaining buf->len is the 17-octet Network PDU plus any trailing advertising bytes, and prior to this fix there was no maximum-length check (only a minimum). An attacker can therefore append extra AD structures or padding after the Solicitation Service Data to make buf->len exceed 17. bt_mesh_scan_cb() is registered directly as the BLE scan callback, so buf is raw, unauthenticated advertising data received over the air. Any device in radio range can send a non-connectable advertisement carrying a crafted mesh Proxy Solicitation to a node that has CONFIG_BT_MESH_OD_PRIV_PROXY_SRV enabled and is currently eligible to be solicited (GATT proxy disabled, On-Demand Private Proxy enabled), with no pairing, bonding, or provisioning. The result is an attacker-controlled stack overwrite — plausibly leading to remote code execution and at minimum a reliable remote denial of service. The fix trims buf->len to the spec-fixed 17 octets (dropping the PDU if fewer remain) before decryption.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| zephyrproject | zephyr | >= 3.4.0, < 4.4.2 |
References
Timeline
- Published
- Last Modified
- Status
- Awaiting Analysis
Frequently Asked Questions
What is CVE-2026-15894?
How severe is CVE-2026-15894?
How do I fix CVE-2026-15894?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-15889The Aruba HiSpeed Cache plugin for WordPress is vulnerable t…6.4
- CVE-2026-1589A vulnerability was determined in itsourcecode School Manage…9.8
- CVE-2026-15890The default AEAD nonce provider for the PSA Internal Trusted…5.3
- CVE-2026-15891The MQTT-SN client keepalive handler process_ping() in subsy…7.5
- CVE-2026-15892The mcumgr SMP settings-management group handlers settings_m…5.3
- CVE-2026-15893net_if_ipv6_calc_reachable_time() in subsys/net/ip/net_if.c …6.5
- CVE-2026-15895OS command injection in the npm package loading component in…7.8
- CVE-2026-15896The Super Forms – Drag & Drop Form Builder plugin for WordPr…9.1
- CVE-2026-15897The Super Forms – Drag & Drop Form Builder plugin for WordPr…8.8
- CVE-2026-15899Use after free in CameraCapture in Google Chrome on Mac prio…9.6
- CVE-2026-1590A vulnerability was identified in itsourcecode School Manage…9.8
- CVE-2026-15900Use after free in GPU in Google Chrome on Android prior to 1…9.6
Are you affected by CVE-2026-15894?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
