Skip to main content

Zephyr OpenThread CVE-2026-19741

| EUVDEUVD-2026-109139 HIGH
Use of Default Credentials (CWE-1392)
2026-10-23 zephyr
7.5
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Position within 802.15.4 radio range of uncommissioned device
  2. Delivery
    Run stock Thread commissioner registered with public PSKd J01NME
  3. Exploit
    Complete DTLS-PSK joiner handshake
  4. Execution
    Device enables Thread with attacker operational dataset
  5. Impact
    Attacker becomes router and MITMs all device IPv6 traffic

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Default credential prevention
Exploitation Conditions

Requires a firmware image built with CONFIG_OPENTHREAD_JOINER_AUTOSTART=y while CONFIG_OPENTHREAD_JOINER_PSKD was left at the removed default 'J01NME' (or any publicly known value), and a target device with no stored/commissioned operational dataset - i.e. factory-fresh, after a factory reset, or after a settings erase. The attacker must be within 802.15.4 radio range (AV:A) and operate a Thread commissioner registered with that same PSKd. Limiting factors that reduce real-world exposure: joiner autostart is NOT enabled by default and no in-tree Zephyr sample ships the vulnerable combination; exploitation is only possible during the device's uncommissioned joining window; and application-layer security using independently provisioned credentials still survives the network-layer takeover. The device remains mis-provisioned until reset.

Impact

Signals are mixed and net out below the raw 7.5/High CVSS headline. The CVSS vector itself is the main limiter: AV:A confines the attacker to 802.15.4 radio range (no internet-facing exposure), and AC:H reflects that the target must be caught in its uncommissioned joining window (factory-fresh, post-factory-reset, or post-settings-erase). PR:N/UI:N confirm no authentication or user interaction is needed once those conditions hold, and C:H/I:H/A:H is justified because a successful join makes the attacker the device's Thread router with full see/drop/inject/spoof control over its IPv6 traffic. The decisive mitigating factor is not in the CVSS base metrics at all: exposure is gated on an opt-in, non-default build configuration (CONFIG_OPENTHREAD_JOINER_AUTOSTART=y with the PSKd left at the public default), and the advisory confirms no in-tree Zephyr sample ships the vulnerable combination. No CISA KEV listing and no EPSS score are provided in the input, so there is no evidence of active or widespread exploitation; a full commissioner proof-of-concept is published in the GHSA advisory, which raises practical risk for any product that did ship the vulnerable combination. The vuln.today Decision label is this_week (not act_now/emergency). Net assessment: a genuine, high-impact misconfiguration-class weakness (CWE-1392, default credential) for the specific subset of products that enabled joiner autostart without overriding the PSKd, but not a broad-fleet emergency given it is off by default and adjacency-only.

Exploit ScenarioDerived

An attacker standing within 802.15.4 radio range of a vulnerable Zephyr device that has just booted factory-fresh or been reset runs any stock Thread commissioner pre-registered with the public PSKd 'J01NME'. Because the device auto-starts a joiner and authenticates solely on that non-secret credential, the DTLS-PSK handshake succeeds and the attacker hands over an attacker-controlled operational dataset, making the device join the attacker's mesh. A complete commissioner PoC is published in the GHSA advisory; exploitation requires the device to be in its uncommissioned joining window.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 23, 2026

Zephyr's OpenThread joiner autostart can cause an uncommissioned device to join an attacker-controlled Thread mesh because the build defaulted to the public Joining Device Credential 'J01NME'. Builds with CONFIG_OPENTHREAD_JOINER_AUTOSTART=y that leave CONFIG_OPENTHREAD_JOINER_PSKD unset are affected, and an attacker within 802.15.4 radio range running a commissioner with that same PSKd can complete commissioning and supply an arbitrary operational dataset. A reporter-supplied PoC reference exists but is not independently verified as working exploit code; joiner autostart is not enabled by default and no in-tree Zephyr sample uses the vulnerable combination.

RemediationAI

Apply the upstream fix in commit acb3e514d7fab2bc9672acaba8019d2dc91b187c or update to 4.5.0, the projected fixed release; the advisory states the fix is merged on main but not yet released, so confirm 4.5.0 availability before relying on it. For source builds, remove any reliance on the J01NME default by setting CONFIG_OPENTHREAD_JOINER_PSKD to a unique 6-to-32-character uppercase alphanumeric credential per device, provisioning it from factory data, and registering the same PSKd on the intended commissioner. Prefer disabling CONFIG_OPENTHREAD_JOINER_AUTOSTART and calling otJoinerStart() from the application with the per-device PSKd, which avoids compiling an identical credential into every unit but requires the application to handle commissioning explicitly. If patching or re-provisioning is not immediately possible, disable joiner autostart, which prevents the automatic join but requires manual commissioning instead. Application-layer security with independently provisioned credentials remains effective even if network-layer commissioning is taken over. See https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-6j2r-xrm4-3v7f and https://github.com/zephyrproject-rtos/zephyr/commit/acb3e514d7fab2bc9672acaba8019d2dc91b187c.

Affected VersionsENISA

Zephyr 1.14.0 <4.5.0

Affected Packages

euvd zephyr fix: 4.5.0

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

OpenThread is Zephyr's Thread stack; Thread commissioning uses a Joining Device Credential (PSKd) as the only value that authenticates a DTLS-PSK handshake between joiner and commissioner, after which the commissioner provides the operational dataset. In the affected code, CONFIG_OPENTHREAD_JOINER_PSKD had a Kconfig default of "J01NME" in modules/openthread/Kconfig.thread (previously under subsys/net/l2/openthread), and ot_configure_instance() in modules/openthread/openthread.c calls otJoinerStart() when CONFIG_OPENTHREAD_JOINER_AUTOSTART=y and otDatasetIsCommissioned() is false. On a successful join, ot_joiner_start_handler() calls otThreadSetEnabled(), so the device commits to the commissioner-supplied dataset and can be made a child of the attacker's mesh. This is CWE-1392 (use of default credentials): the root cause is a build-time default secret, not a memory-safety flaw. The advisory narrows affected releases to >= 1.14.0 and <= 4.4.2; the CPE cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:* covers the product family. Exposure requires the opt-in autostart configuration and an uncommissioned device; the trigger is not a race or timing condition, and the CVSS AV:A/AC:H metrics reflect proximity and the need to operate a compatible commissioner during the joining window.

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

Vendor (zephyr) PRIMARY 7.5 HIGH
AV:A/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.5 HIGH

Adjacent 802.15.4 range (AV:A); needs the device in its uncommissioned joining window plus a non-default vulnerable build (AC:H); no auth or interaction (PR:N/UI:N); full network-layer MITM gives C/I/A High.

3.1 AV:A/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:A/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

Attack Vector
Adjacent
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

Zephyr's OpenThread integration defined CONFIG_OPENTHREAD_JOINER_PSKD with default "J01NME" in modules/openthread/Kconfig.thread (previously subsys/net/l2/openthread/Kconfig, then subsys/net/l2/openthread/Kconfig.thread). J01NME is the example Joining Device Credential used throughout the public OpenThread and Thread commissioning documentation, including Zephyr's own samples/net/sockets/echo_client/README.rst, so it is not a secret. A firmware image built with CONFIG_OPENTHREAD_JOINER_AUTOSTART=y that never overrode the PSKd therefore shipped with a publicly known joining credential compiled in, with no build-time or run-time warning.

The PSKd is the only value that authenticates Thread commissioning: joiner and commissioner run a DTLS-PSK handshake keyed on it, after which the commissioner supplies the full operational dataset. In ot_configure_instance() (modules/openthread/openthread.c), a device with no stored dataset calls otJoinerStart() with the configured PSKd, and ot_joiner_start_handler() calls otThreadSetEnabled() on success. An unauthenticated attacker within 802.15.4 radio range of an uncommissioned device (factory-fresh, after a factory reset, or after a settings erase) can run any stock Thread commissioner registered with J01NME, complete the handshake, and hand the device an attacker-controlled operational dataset.

The device then joins and enables Thread on the attacker's mesh. The attacker becomes its router, seeing, dropping, injecting and spoofing all of the device's IPv6 traffic and impersonating the peers the application expects, while the device is cut off from the network it was meant to join and stays mis-provisioned until it is reset. Only application-layer security with independently provisioned credentials survives. Exposure is limited to builds that enable joiner autostart and leave the PSKd unset; the option is not enabled by default and no in-tree sample uses the vulnerable combination.

The fix removes the default from CONFIG_OPENTHREAD_JOINER_PSKD and adds a BUILD_ASSERT() in modules/openthread/openthread.c, active only under CONFIG_OPENTHREAD_JOINER_AUTOSTART, that fails the build unless a 6-to-32-character PSKd is configured. Products should provision a per-device PSKd from factory data and call otJoinerStart() from the application rather than relying on a credential compiled identically into every unit.

Technical POC Analysis

CWE-1392: Use of Default Credentials.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Zephyr-based IoT products built with OpenThread joiner autostart enabled and no custom PSKd are vulnerable to unauthorized commissioning by an attacker within radio range, allowing them to redirect the device into a rogue Thread mesh. This affects product security and could give adversaries persistent control over affected devices, undermining customer trust and regulatory compliance.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Medium
popular embedded RTOS, but vulnerable Thread joiner config is opt-in
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Controlled
Automatable· derived
No
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Zephyr

View all
CVE-2023-4260 CRITICAL POC
10.0 Sep 27

Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),

CVE-2026-1678 CRITICAL POC
9.8 Mar 05

An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on

CVE-2023-5055 CRITICAL POC
9.8 Nov 21

Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit

CVE-2023-4257 CRITICAL POC
9.8 Oct 13

Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS

CVE-2023-3725 CRITICAL POC
9.8 Oct 06

Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner

CVE-2021-3323 CRITICAL POC
9.8 Oct 12

Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2021-3625 CRITICAL POC
9.8 Oct 05

Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable

CVE-2021-3319 CRITICAL POC
9.8 Oct 05

DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul

CVE-2018-1000800 CRITICAL POC
9.8 Sep 06

zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(

CVE-2023-4264 CRITICAL POC
9.6 Sep 27

Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul

CVE-2024-1638 CRITICAL POC
9.1 Feb 19

The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte

CVE-2023-5753 HIGH POC
8.8 Oct 25

Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy