Mbed TLS in Zephyr firmware: identifiers and CRA notes
·
What it is
Mbed TLS
Notes on this component
Mbed TLS, the TLS and cryptography library behind CONFIG_MBEDTLS. Zephyr pins its own copy, which its repository describes as not a mirror of the official one, so the commit in `west.yml` is not an upstream commit and gives no release number. Flaws are published in the Mbed TLS security advisories and as CVEs under arm:mbed_tls and trustedfirmware:mbed_tls; the most serious of the current set are CVE-2026-34877 (a serialized SSL session or context an attacker can modify induces memory corruption and can reach arbitrary code execution; 2.19.0 through 3.6.5 and 4.0.0, fixed in 3.6.6), CVE-2026-34873 (client impersonation while resuming a TLS 1.3 session; 3.5.0 through 4.0.0, fixed in 3.6.6 and 4.1.0) and CVE-2026-34875 (a buffer overflow when exporting a finite-field Diffie-Hellman public key; through 3.6.5, fixed in 3.6.6). The separate `mbedtls-3.6` module is a second copy on its own release schedule and has to be checked on its own.
Also a subsystem, switched on by CONFIG_MBEDTLS. Mbed TLS, pulled in as a Zephyr module, so its vulnerabilities are filed against arm:mbed_tls at the module's own version and not against the Zephyr kernel. CVE family is TLS record and handshake handling, X.509 certificate parsing, and side-channel findings in the crypto primitives. Advisories Mbed TLS published in July 2026 include CVE-2026-50713 (heap corruption, up to remote code execution, when a DTLS peer renegotiates early after a corrupted record, affecting 3.6.3 to 3.6.6), CVE-2026-49300 (an invalid basicConstraints extension makes an end-entity certificate read as a CA, affecting every version up to 3.6.6 and 4.0.0 to 4.1.0, fixed in 3.6.7 and 4.1.1) and CVE-2026-50580 (a malicious TLS 1.2 server makes a client with a long PSK identity write past its output buffer in an ECDHE-PSK handshake, fixed in 3.6.7 and 4.1.1). All three are rated high. The version comes from the mbedtls west module component, because the Zephyr version tells you nothing about which Mbed TLS was vendored.
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_MBEDTLS 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/Mbed-TLS/mbedtls@{version}cpe:2.3:a:arm:mbed_tls:{version}:*:*:*:*:*:*:*
{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: arm.
Where this row comes from
https://nvd.nist.gov/vuln/detail/CVE-2026-34877
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 Mbed TLS
Next step
Check the Mbed TLS 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.