Out-of-bounds write caused by an integer underflow in the Bluetooth Mesh subsystem. (zephyrproject-rtos Zephyr)

CVE-2026-5589
MEDIUM 6.3

At a glance

Source
NVD
EPSS
EPSS 0.26 % · percentile 17 ()
State
PUBLISHED
Published
Updated
Assigner
zephyr
NVD status
Analyzed

Description

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.

Weaknesses (CWE)

  • CWE-787 — Out-of-bounds Write

References

Scores

VersionScoreVectorScored by
CVSS 3.1MEDIUM 6.3CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:LCISA-ADP
CVSS 3.1MEDIUM 6.3CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:LNVD · 134c704f-9b21-4f2e-91b3-4a467353bcc0 (Secondary)

European references

Affected configurations (NVD CPE)

Affected products

ProductVersions
zephyrproject-rtos · Zephyraffected * < 4.3.1

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD