MEDIUM 6.3

CVE-2026-5589: Integer Underflow in Zephyr Bluetooth Mesh Solicitation Handling

A flaw in Zephyr's Bluetooth Mesh implementation allows a nearby attacker to send a malicious wireless advertisement that triggers memory corruption. The vulnerable code fails to validate that certain length values are reasonable before using them in calculations, leading to reads and writes far outside intended memory boundaries. Devices with Bluetooth Mesh enabled and the optional proxy server feature active are at risk. No authentication or pairing is required—an attacker simply broadcasts a specially crafted BLE packet.

Source data · NVD / CISA · public domain

CVSS
3.1 · 6.3 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
Weaknesses (CWE)
CWE-787
Affected products
1 configuration(s)
Published / Modified
2026-06-04 / 2026-07-08

NVD description (verbatim)

An integer underflow in bt_mesh_sol_recv() in the Bluetooth Mesh solicitation handling (subsys/bluetooth/mesh/solicitation.c) leads to an out-of-bounds write. When CONFIG_BT_MESH_OD_PRIV_PROXY_SRV is enabled, the function parses solicitation PDUs from raw BLE advertising payloads. The AD parsing loop reads an attacker-controlled length byte (reported_len) and computes reported_len - 3 without checking that reported_len >= 3. When reported_len is less than 3, the subtraction is performed in signed int arithmetic and yields a negative value that bypasses the length guard and is then implicitly converted to a very large size_t when passed to net_buf_simple_pull_mem(). In builds without assertions, this wraps the buffer length and advances the data pointer far out of bounds, so subsequent reads dereference invalid memory. A nearby BLE device can trigger this with a non-connectable advertisement carrying a UUID16 AD structure and a crafted length byte, with no pairing or prior association required, potentially leading to denial of service or arbitrary code execution.

1 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-5589 is an integer underflow vulnerability in bt_mesh_sol_recv() (subsys/bluetooth/mesh/solicitation.c) that occurs when CONFIG_BT_MESH_OD_PRIV_PROXY_SRV is enabled. The function parses solicitation PDUs from BLE advertising payloads and reads an attacker-controlled length byte (reported_len) without validating that reported_len >= 3 before computing reported_len - 3. In signed integer arithmetic, this underflow produces a negative value that bypasses the length guard. When the negative value is implicitly cast to size_t and passed to net_buf_simple_pull_mem(), it becomes a very large positive integer due to two's complement wrapping. This causes the buffer pointer to advance far out of bounds, enabling out-of-bounds reads and writes in subsequent operations. Builds without compile-time assertions are particularly vulnerable.

Business impact

Organizations deploying Zephyr-based Bluetooth Mesh devices—including IoT gateways, mesh routers, and sensors—face denial-of-service risk from remote attackers within broadcast range. If arbitrary code execution is achievable through carefully crafted payloads, compromised devices could be reprogrammed or used as network pivots. This affects supply chains reliant on mesh-based industrial automation, building management, or smart home systems. The lack of authentication requirements means threat actors do not need to compromise pairing credentials or network keys.

Affected systems

Zephyr Project versions that include the affected solicitation.c code with CONFIG_BT_MESH_OD_PRIV_PROXY_SRV enabled are susceptible. This configuration is not necessarily default, but products enabling Bluetooth Mesh proxy functionality for network extension are at risk. Specific affected version ranges should be verified against the Zephyr security advisory and product documentation from device manufacturers integrating Zephyr.

Exploitability

Exploitability is straightforward. An attacker with a standard BLE radio adapter (widely available) can craft a non-connectable advertisement containing a UUID16 AD structure with a malformed length byte. No pairing, authentication, or proximity beyond typical BLE range (~100m in open space) is needed. The attack is deterministic—sending the malicious packet reliably triggers the underflow. Post-exploitation impact depends on memory layout and whether assertions are disabled; some targets may crash (DoS), while others might allow code execution.

Remediation

Upgrade Zephyr to a patched version that validates reported_len >= 3 before performing the subtraction. Verify the exact patch version in the official Zephyr security advisory. Organizations unable to update immediately should disable CONFIG_BT_MESH_OD_PRIV_PROXY_SRV if the proxy server role is not essential, or restrict BLE advertising reception to known, trusted devices via hardware or firmware filtering if feasible.

Patch guidance

Consult the Zephyr Project security advisory for the specific patched version. Patches typically involve adding a bounds check on reported_len before the arithmetic operation. After patching, rebuild and reflash affected devices. If devices are deployed in the field without OTA capability, coordinate a staged firmware update with stakeholders. Test patches in a lab environment with Bluetooth Mesh devices to confirm proxy functionality remains intact post-update.

Detection guidance

Intrusion detection systems monitoring BLE traffic can be tuned to flag advertisements with UUID16 AD structures bearing suspiciously small length values (less than 3 bytes). Zephyr applications can enable compile-time assertions (CONFIG_ASSERT or equivalent) to catch the underflow and reboot safely rather than silently corrupt memory. Monitor system logs and crash reports for unexplained device reboots or hangs in Bluetooth Mesh-enabled products. Network operators should baseline normal mesh advertisement patterns and alert on anomalies.

Why prioritize this

Although assigned MEDIUM severity (CVSS 6.3), this warrants prompt attention because exploitation requires no authentication, is remotely triggered, and impacts foundational mesh infrastructure. The potential for arbitrary code execution and the widespread use of Zephyr in unattended IoT deployments elevate practical risk. Prioritize patching devices in critical infrastructure or high-density mesh networks first.

Risk score, explained

CVSS 3.1 score of 6.3 reflects network-based attack vector (AV:N), low attack complexity (AC:L), and low privilege requirement (PR:L). The PR:L requirement assumes some prior association or network access; however, the vulnerability is triggered by unauthenticated BLE broadcasts, which may warrant re-evaluation in organizational risk models. The impact is limited (C:L/I:L/A:L) in the CVSS model, but memory corruption vulnerabilities carry inherent code execution risk not fully captured by the base score.

Frequently asked questions

Does this affect all Zephyr Bluetooth Mesh deployments?

No. The vulnerability is specific to builds with CONFIG_BT_MESH_OD_PRIV_PROXY_SRV enabled. Check your device configuration. If your product does not use Bluetooth Mesh or does not enable the proxy server, you are not affected. Verify with your device manufacturer or build configuration.

Can this be exploited over IP networks?

No. The vulnerability requires direct BLE radio communication. The attacker must be within Bluetooth range (typically 10–100 meters) of the target device. It cannot be exploited remotely over the Internet unless the BLE traffic is relayed through a gateway, which would then be the direct target.

Is there a known public exploit or PoC?

Not disclosed in this summary. However, given the straightforward nature of crafting a malformed BLE advertisement, assume capable threat actors can exploit this quickly once a patch is available. Prioritize patching promptly.

What should I do if I cannot patch immediately?

If possible, disable CONFIG_BT_MESH_OD_PRIV_PROXY_SRV in non-critical devices. Enable compile-time assertions to convert silent corruption into detectable crashes. Segment mesh networks and reduce unnecessary BLE advertisement reception. Monitor for unexpected device restarts or behavior changes. Plan a firmware update as soon as patches are available.

This analysis is provided for informational and defensive purposes. SEC.co makes no warranty regarding patch availability, version numbers, or vendor timelines. Organizations must verify all technical details, including affected versions and remediation steps, against official vendor advisories before taking action. Testing patches in isolated environments before production deployment is strongly recommended. This summary does not constitute legal or compliance advice. Source: NVD (public-domain), retrieved 2026-07-14. Analysis generated by SEC.co (claude-haiku-4-5).