CVE-2026-10675: Bluetooth Mesh PB-ADV: invalidated provisioning link kept alive indefinitely, blocking (re)provisioning (DoS)
In Zephyr's Bluetooth Mesh PB-ADV provisioning bearer (subsys/bluetooth/mesh/pbadv.c), provmsgrecv() rescheduled the provisioning protocol watchdog timer unconditionally at the top of the function, before the FCS check and before the ADVLINKINVALID check. Once a provisioning attempt fails, provfailed() sets ADVLINKINVALID and the only recovery path is the protocol timer firing (protocoltimeout -> provlinkclose -> closelink -> resetadvlink and re-enabling of scanning and the unprovisioned device beacon).
A remote, unauthenticated attacker on the BLE advertising channel can first induce a provisioning failure (e.g. with a malformed generic-provisioning PDU) and then transmit any FCS-valid PB-ADV transaction PDU on the same link ID more often than once per protocol timeout (60 s, or 120 s for OOB input/output). Because each such packet reset the timer even on an invalidated link, protocoltimeout never fired, the dead link was never torn down, and the device remained pinned in an un-provisionable state with its unprovisioned beacon disabled and new Link Open requests rejected.
PB-ADV PDUs are processed without authentication and the FCS is a keyless CRC, so no pairing or prior trust is required and the attacker chooses the link ID itself. The impact is a persistent denial of provisioning/re-provisioning service; there is no memory-safety, confidentiality, or integrity impact.
The vulnerable code shipped in releases through v4.4.1. The fix moves the timer reschedule to after the ADVLINKINVALID check (and the FCS check before the reset) so an invalidated link can no longer be kept alive by incoming packets.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Zephyr Bluetooth Mesh PB-ADV provisioning bearer (subsys/bluetooth/mesh/pb_adv.c)to a version that resolves this vulnerability.Fixed in v4.4.1 - Configuration
Change prov_msg_recv() so it does not reschedule the provisioning protocol watchdog timer unconditionally at the top. Instead, perform the FCS check before the ADV_LINK_INVALID check and only reschedule the timer after confirming the provisioning link (ADV_LINK_INVALID is not set), so invalidated provisioning links cannot be kept alive indefinitely by incoming PB-ADV packets.
Zephyr Bluetooth Mesh PB-ADV (subsys/bluetooth/mesh/pb_adv.c) provisioning protocol watchdog timer reschedule location = After ADV_LINK_INVALID check (and after FCS check before link reset)
Event History
Frequently Asked Questions
What is the severity of CVE-2026-10675?
CVE-2026-10675 has a medium severity rating of 4.3.
What type of vulnerability is associated with CVE-2026-10675?
CVE-2026-10675 is a denial of service vulnerability affecting the Bluetooth Mesh PB-ADV provisioning bearer.
How does CVE-2026-10675 affect provisioning attempts?
CVE-2026-10675 causes invalidated provisioning links to remain active indefinitely, preventing (re)provisioning.
How do I fix CVE-2026-10675?
To fix CVE-2026-10675, update to the latest version of Zephyr where the provisioning timer is correctly managed.
What software is impacted by CVE-2026-10675?
CVE-2026-10675 affects the Zephyr Bluetooth Mesh PB-ADV provisioning bearer.