OpenThread in Zephyr firmware: identifiers and CRA notes
·
What it is
OpenThread
Notes on this component
OpenThread, Google's open-source implementation of the Thread mesh-networking protocol (CONFIG_OPENTHREAD). Zephyr's repository describes its copy as not a mirror of the official one. Flaws are published as GitHub security advisories on openthread/openthread and as CVEs under google:openthread; NVD names its releases by date (2023-07-06), which a tag does not give, so this row sets that CPE without a version. Two are filed: CVE-2023-2626 / GHSA-vr3r-363g-72j9 (a border router accepts radio frames built with "Key ID Mode 2", the static-key mode, so an unauthenticated node bypasses the security check and puts arbitrary IPv6 packets on the Thread network and onto the LAN; fixed in commit 3d5cb36) and CVE-2019-20791 (a stack buffer overflow in MeshCoP::Commissioner::GeneratePskc, before the 2019-12-13 release).
Also a subsystem, switched on by CONFIG_OPENTHREAD. OpenThread, the Thread networking stack, pulled in as a Zephyr module. CVE family is mesh networking message handling — MLE, the CoAP layer it carries, and joiner/commissioning paths — reachable over the radio. OpenThread has published one advisory on its own repository: CVE-2023-2626 (high: frames using IEEE 802.15.4 Key ID Mode 2 were processed as secure, so an attacker could inject IPv6 datagrams without the Thread network key), fixed in commit 3d5cb36 with no release version recorded. Nothing else as of 10 October 2026. Version comes from the openthread module component, not the kernel, because its vulnerabilities are filed against OpenThread upstream. Canonical identity is google:openthread, the same pair OpenThread's own module entry and the record that keeps the vendor SDK forks matched to the same upstream project both use — NVD files OpenThread under CPE part `o`, not `a`, so this row now carries that versionless CPE instead of leaving the field null.
Where it hides in a firmware SBOM
Zephyr lists a west module by its west name, with no PURL or CPE. Vulnerability feeds cannot find it from that listing alone, which is why the SBOM check adds the identifiers below.
It is compiled into the kernel image when CONFIG_OPENTHREAD is y. It does not appear in west spdx output; the only trace is the .config file in your build directory.
The identifiers we assign
pkg:github/openthread/openthread@{version}cpe:2.3:o:google:openthread:*:*:*:*:*:*:*:*
{version} is filled in from your build. The version is read from the upstream release tag.
The SBOM check adds these identifiers to a component your build listed without them.
Honest gaps
Vendor: google.
Where this row comes from
https://github.com/openthread/openthread/security/advisories/GHSA-vr3r-363g-72j9
Checked on 10 October 2026.
Known vulnerabilities
Not checked yet
Vulnerability data changes daily. Check the version you ship in the SBOM check.
CRA notes
- List this component in your SBOM. Annex I, Part II (1):
- Ship the version with no known exploitable vulnerabilities at release. Annex I, Part I (2(a)):
- An SBOM without this subsystem under-reports what is in the image. Annex I, Part II (1):
Source: Annex I of Regulation (EU) 2024/2847 (Cyber Resilience Act), legal state 2026.10.13-1.
Related Zephyr components
No related components yet.
Guides that mention OpenThread
Next step
Check the OpenThread you ship for known vulnerabilitiesDeclarable prepares documentation for you to review. It is not legal advice and not certification. You sign your own declaration of conformity.