Mbed Tls Arm Mbed Tls

Don't miss out!

Thousands of developers use stack.watch to stay informed.
Get an email whenever new security vulnerabilities are reported in Arm Mbed Tls.

By the Year

In 2026 there have been 0 vulnerabilities in Arm Mbed Tls. Last year, in 2025 Mbed Tls had 9 security vulnerabilities published. Right now, Mbed Tls is on track to have less security vulnerabilities in 2026 than it did last year.




Year Vulnerabilities Average Score
2026 0 0.00
2025 9 5.68
2024 13 7.33
2023 3 7.33
2022 4 7.93
2021 14 7.00
2020 4 0.00
2019 1 0.00
2018 7 7.13

It may take a day or so for new Mbed Tls vulnerabilities to show up in the stats or in the list of recent security vulnerabilities. Additionally vulnerabilities may be tagged under a different product or component name.

Recent Arm Mbed Tls Security Vulnerabilities

Mbed TLS <3.6.5 Timing Attack via mbedtls_mpi_mod_inv/gcd
CVE-2025-54764 6.2 - Medium - October 20, 2025

Mbed TLS before 3.6.5 allows a local timing attack against certain RSA operations, and direct calls to mbedtls_mpi_mod_inv or mbedtls_mpi_gcd.

Observable Timing Discrepancy

Mbed TLS <3.6.4 Use-After-Free in mbedtls_x509_string_to_names
CVE-2025-47917 8.9 - High - July 20, 2025

Mbed TLS before 3.6.4 allows a use-after-free in certain situations of applications that are developed in accordance with the documentation. The function mbedtls_x509_string_to_names() takes a head argument that is documented as an output argument. The documentation does not suggest that the function will free that pointer; however, the function does call mbedtls_asn1_free_named_data_list() on that argument, which performs a deep free(). As a result, application code that uses this function (relying only on documented behavior) is likely to still hold pointers to the memory blocks that were freed, resulting in a high risk of use-after-free or double-free. In particular, the two sample programs x509/cert_write and x509/cert_req are affected (use-after-free if the san string contains more than one DN).

Dangling pointer

Mbed TLS 3.6.x Timing Leak in PKCS#7 Padding Removal Before 3.6.4
CVE-2025-49087 3.7 - Low - July 20, 2025

In Mbed TLS 3.6.1 through 3.6.3 before 3.6.4, a timing discrepancy in block cipher padding removal allows an attacker to recover the plaintext when PKCS#7 padding mode is used.

Covert Timing Channel

Mbed TLS <3.6.4 NULL pointer deref via mbedtls_asn1_store_named_data
CVE-2025-48965 4 - Medium - July 20, 2025

Mbed TLS before 3.6.4 has a NULL pointer dereference because mbedtls_asn1_store_named_data can trigger conflicting data with val.p of NULL but val.len greater than zero.

Incorrect Behavior Order

MbedTLS <3.6.4: OOB Read in mbedtls_lms_import_public_key
CVE-2025-49601 6.5 - Medium - July 04, 2025

In MbedTLS 3.3.0 before 3.6.4, mbedtls_lms_import_public_key does not check that the input buffer is at least 4 bytes before reading a 32-bit field, allowing a possible out-of-bounds read on truncated input. Specifically, an out-of-bounds read in mbedtls_lms_import_public_key allows context-dependent attackers to trigger a crash or limited adjacent-memory disclosure by supplying a truncated LMS (Leighton-Micali Signature) public-key buffer under four bytes. An LMS public key starts with a 4-byte type indicator. The function mbedtls_lms_import_public_key reads this type indicator before validating the size of its input.

Out-of-bounds Read

Mbed TLS before 3.6.4 PEM parsing heap buffer underflow via untrusted input
CVE-2025-52497 4.8 - Medium - July 04, 2025

Mbed TLS before 3.6.4 has a PEM parsing one-byte heap-based buffer underflow, in mbedtls_pem_read_buffer and two mbedtls_pk_parse functions, via untrusted PEM input.

off-by-five

MbedTLS 3.3.0-3.6.4: mbedtls_lms_verify allows LMS forgery via fault
CVE-2025-49600 - July 04, 2025

In MbedTLS 3.3.0 before 3.6.4, mbedtls_lms_verify may accept invalid signatures if hash computation fails and internal errors go unchecked, enabling LMS (Leighton-Micali Signature) forgery in a fault scenario. Specifically, unchecked return values in mbedtls_lms_verify allow an attacker (who can induce a hardware hash accelerator fault) to bypass LMS signature verification by reusing stale stack data, resulting in acceptance of an invalid signature. In mbedtls_lms_verify, the return values of the internal Merkle tree functions create_merkle_leaf_value and create_merkle_internal_value are not checked. These functions return an integer that indicates whether the call succeeded or not. If a failure occurs, the output buffer (Tc_candidate_root_node) may remain uninitialized, and the result of the signature verification is unpredictable. When the software implementation of SHA-256 is used, these functions will not fail. However, with hardware-accelerated hashing, an attacker could use fault injection against the accelerator to bypass verification.

Missing Cryptographic Step

Hostname Validation Bypass in Mbed TLS <2.28.10/3.6.3 Without set_hostname()
CVE-2025-27809 - March 25, 2025

Mbed TLS before 2.28.10 and 3.x before 3.6.3, on the client side, accepts servers that have trusted certificates for arbitrary hostnames unless the TLS client application calls mbedtls_ssl_set_hostname.

Mbed TLS <2.28.10 & <3.6.3: auth bypass via uninit memory in Finished msg
CVE-2025-27810 - March 25, 2025

Mbed TLS before 2.28.10 and 3.x before 3.6.3, in some cases of failed memory allocation or hardware errors, uses uninitialized stack memory to compose the TLS Finished message, potentially leading to authentication bypasses such as replays.

Mbed TLS 3.5.x-3.6.x Buffer Underrun in pkwrite (before 3.6.2)
CVE-2024-49195 - October 15, 2024

Mbed TLS 3.5.x through 3.6.x before 3.6.2 has a buffer underrun in pkwrite when writing an opaque key pair

MbedTLS <2.28.9/3.6.1 HMAC_DRBG Selection Failure
CVE-2024-45157 5.1 - Medium - September 05, 2024

An issue was discovered in Mbed TLS before 2.28.9 and 3.x before 3.6.1, in which the user-selected algorithm is not used. Unlike previously documented, enabling MBEDTLS_PSA_HMAC_DRBG_MD_TYPE does not cause the PSA subsystem to use HMAC_DRBG: it uses HMAC_DRBG only when MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG and MBEDTLS_CTR_DRBG_C are disabled.

Mbed TLS 3.6 Buffer Overflow in ecdsa_der_to_raw/ecdsa_raw_to_der
CVE-2024-45158 - September 05, 2024

An issue was discovered in Mbed TLS 3.6 before 3.6.1. A stack buffer overflow in mbedtls_ecdsa_der_to_raw() and mbedtls_ecdsa_raw_to_der() can occur when the bits parameter is larger than the largest supported curve. In some configurations with PSA disabled, all values of bits are affected. (This never happens in internal library calls, but can affect applications that call these functions directly.)

Mbed TLS <3.6.1 TLS1.3 Optional Auth KeyUsage Bypass
CVE-2024-45159 9.8 - Critical - September 05, 2024

An issue was discovered in Mbed TLS 3.x before 3.6.1. With TLS 1.3, when a server enables optional authentication of the client, if the client-provided certificate does not have appropriate values in if keyUsage or extKeyUsage extensions, then the return value of mbedtls_ssl_get_verify_result() would incorrectly have the MBEDTLS_X509_BADCERT_KEY_USAGE and MBEDTLS_X509_BADCERT_KEY_USAGE bits clear. As a result, an attacker that had a certificate valid for uses other than TLS client authentication would nonetheless be able to use it for TLS client authentication. Only TLS 1.3 servers were affected, and only with optional authentication (with required authentication, the handshake would be aborted with a fatal alert).

Improper Certificate Validation

Mbed TLS 3.x Certificate Name Check Crash (CVE-2024-6119)
CVE-2024-6119 7.5 - High - September 03, 2024

Issue summary: Applications performing certificate name checks (e.g., TLS clients checking server certificates) may attempt to read an invalid memory address resulting in abnormal termination of the application process. Impact summary: Abnormal termination of an application can a cause a denial of service. Applications performing certificate name checks (e.g., TLS clients checking server certificates) may attempt to read an invalid memory address when comparing the expected name with an `otherName` subject alternative name of an X.509 certificate. This may result in an exception that terminates the application program. Note that basic certificate chain validation (signatures, dates, ...) is not affected, the denial of service can occur only when the application also specifies an expected DNS name, Email address or IP address. TLS servers rarely solicit client certificates, and even when they do, they generally don't perform a name check against a reference identifier (expected identity), but rather extract the presented identity after checking the certificate chain. So TLS servers are generally not affected and the severity of the issue is Moderate. The FIPS modules in 3.3, 3.2, 3.1 and 3.0 are not affected by this issue.

Object Type Confusion

Mbed TLS 3.5.x DoS via TLS 1.2 Fallback before 3.6
CVE-2024-28836 - April 03, 2024

An issue was discovered in Mbed TLS 3.5.x before 3.6.0. When negotiating the TLS version on the server side, it can fall back to the TLS 1.2 implementation of the protocol if it is disabled. If the TLS 1.2 implementation was disabled at build time, a TLS 1.2 client could put a TLS 1.3-only server into an infinite loop processing a TLS 1.2 ClientHello, resulting in a denial of service. If the TLS 1.2 implementation was disabled at runtime, a TLS 1.2 client can successfully establish a TLS 1.2 connection with the server.

Infinite Loop

Stack Over-read Mbed TLS 3.3-3.5.2 TLS1.3 Server via ClientHello CVE-2024-30166
CVE-2024-30166 - April 03, 2024

In Mbed TLS 3.3.0 through 3.5.2 before 3.6.0, a malicious client can cause information disclosure or a denial of service because of a stack buffer over-read (of less than 256 bytes) in a TLS 1.3 server via a TLS 3.1 ClientHello.

MbedTLS 3.5.x SSL Session Reset Bug Enables TLS 1.3 Downgrade
CVE-2024-28755 - April 03, 2024

An issue was discovered in Mbed TLS 3.5.x before 3.6.0. When an SSL context was reset with the mbedtls_ssl_session_reset() API, the maximum TLS version to be negotiated was not restored to the configured one. An attacker was able to prevent an Mbed TLS server from establishing any TLS 1.3 connection, potentially resulting in a Denial of Service or forced version downgrade from TLS 1.3 to TLS 1.2.

Mbed TLS PSA Crypto shared memory mishandling before 2.28.8 / 3.6.0
CVE-2024-28960 8.2 - High - March 29, 2024

An issue was discovered in Mbed TLS 2.18.0 through 2.28.x before 2.28.8 and 3.x before 3.6.0, and Mbed Crypto. The PSA Crypto API mishandles shared memory.

Authorization

Timing Side-Channel in Mbed TLS RSA Decryption (2.x < 2.28.7 / 3.x < 3.5.2)
CVE-2024-23170 5.5 - Medium - January 31, 2024

An issue was discovered in Mbed TLS 2.x before 2.28.7 and 3.x before 3.5.2. There was a timing side channel in RSA private operations. This side channel could be sufficient for a local attacker to recover the plaintext. It requires the attacker to send a large number of messages for decryption, as described in "Everlasting ROBOT: the Marvin Attack" by Hubert Kario.

Covert Timing Channel

Int Ovfl MbedTLS 2.x<2.28.7 & 3.x<3.5.2 via x509_set_ext - DoS
CVE-2024-23775 7.5 - High - January 31, 2024

Integer Overflow vulnerability in Mbed TLS 2.x before 2.28.7 and 3.x before 3.5.2, allows attackers to cause a denial of service (DoS) via mbedtls_x509_set_extension().

Integer Overflow or Wraparound

Mbed TLS 3.5.1: Max TLS Version Mishandling in SSL Reset
CVE-2023-52353 7.5 - High - January 21, 2024

An issue was discovered in Mbed TLS through 3.5.1. In mbedtls_ssl_session_reset, the maximum negotiable TLS version is mishandled. For example, if the last connection negotiated TLS 1.2, then 1.2 becomes the new maximum.

Session Fixation

Mbed TLS 3.5.1 Handshake Denial via ClientHello w/o Extensions
CVE-2024-23744 7.5 - High - January 21, 2024

An issue was discovered in Mbed TLS 3.5.1. There is persistent handshake denial if a client sends a TLS 1.3 ClientHello without extensions.

Buffer Overflow in Mbed TLS <2.28.5 / <3.5.0
CVE-2023-43615 7.5 - High - October 07, 2023

Mbed TLS 2.x before 2.28.5 and 3.x before 3.5.0 has a Buffer Overflow.

Classic Buffer Overflow

Mbed TLS 3.x Buffer Overflow RCE (before v3.5)
CVE-2023-45199 9.8 - Critical - October 07, 2023

Mbed TLS 3.2.x through 3.4.x before 3.5 has a Buffer Overflow that can lead to remote Code execution.

Classic Buffer Overflow

Mbed TLS <3.0.0 Broken Crypto in mbedtls_mpi_exp_mod()
CVE-2021-36647 4.7 - Medium - January 17, 2023

Use of a Broken or Risky Cryptographic Algorithm in the function mbedtls_mpi_exp_mod() in lignum.c in Mbed TLS Mbed TLS all versions before 3.0.0, 2.27.0 or 2.16.11 allows attackers with access to precise enough timing and memory access information (typically an untrusted operating system attacking a secure enclave such as SGX or the TrustZone secure world) to recover the private keys used in RSA.

Use of a Broken or Risky Cryptographic Algorithm

Mbed TLS Pre-2.28.2 & Pre-3.3.0: RSA Key Recovery via Small Window Size Leakage
CVE-2022-46392 5.3 - Medium - December 15, 2022

An issue was discovered in Mbed TLS before 2.28.2 and 3.x before 3.3.0. An adversary with access to precise enough information about memory accesses (typically, an untrusted operating system attacking a secure enclave) can recover an RSA private key after observing the victim performing a single private-key operation, if the window size (MBEDTLS_MPI_WINDOW_SIZE) used for the exponentiation is 3 or smaller.

Side Channel Attack

Heap Buffer Overflow CVE-2022-46393 in MbedTLS DTLS <2.28.2/3.3.0
CVE-2022-46393 9.8 - Critical - December 15, 2022

An issue was discovered in Mbed TLS before 2.28.2 and 3.x before 3.3.0. There is a potential heap-based buffer overflow and heap-based buffer over-read in DTLS if MBEDTLS_SSL_DTLS_CONNECTION_ID is enabled and MBEDTLS_SSL_CID_IN_LEN_MAX > 2 * MBEDTLS_SSL_CID_OUT_LEN_MAX.

Out-of-bounds Read

An issue was discovered in Mbed TLS before 2.28.1 and 3.x before 3.2.0
CVE-2022-35409 9.1 - Critical - July 15, 2022

An issue was discovered in Mbed TLS before 2.28.1 and 3.x before 3.2.0. In some configurations, an unauthenticated attacker can send an invalid ClientHello message to a DTLS server that causes a heap-based buffer over-read of up to 255 bytes. This can cause a server crash or possibly information disclosure based on error responses. Affected configurations have MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE enabled and MBEDTLS_SSL_IN_CONTENT_LEN less than a threshold that depends on the configuration: 258 bytes if using mbedtls_ssl_cookie_check, and possibly up to 571 bytes with a custom cookie check function.

Out-of-bounds Read

A Denial of Service vulnerability exists in mbed TLS 3.0.0 and earlier in the mbedtls_pkcs12_derivation function when an input password's length is 0.
CVE-2021-43666 7.5 - High - March 24, 2022

A Denial of Service vulnerability exists in mbed TLS 3.0.0 and earlier in the mbedtls_pkcs12_derivation function when an input password's length is 0.

length manipulation

In Mbed TLS before 2.28.0 and 3.x before 3.1.0, psa_cipher_generate_iv and psa_cipher_encrypt
CVE-2021-45450 7.5 - High - December 21, 2021

In Mbed TLS before 2.28.0 and 3.x before 3.1.0, psa_cipher_generate_iv and psa_cipher_encrypt allow policy bypass or oracle-based decryption when the output buffer is at memory locations accessible to an untrusted application.

Use of a Broken or Risky Cryptographic Algorithm

In Mbed TLS before 3.1.0, psa_aead_generate_nonce
CVE-2021-45451 7.5 - High - December 21, 2021

In Mbed TLS before 3.1.0, psa_aead_generate_nonce allows policy bypass or oracle-based decryption when the output buffer is at memory locations accessible to an untrusted application.

Use of a Broken or Risky Cryptographic Algorithm

Mbed TLS before 3.0.1 has a double free in certain out-of-memory conditions
CVE-2021-44732 9.8 - Critical - December 20, 2021

Mbed TLS before 3.0.1 has a double free in certain out-of-memory conditions, as demonstrated by an mbedtls_ssl_set_session() failure.

Double-free

An issue was discovered in Mbed TLS before 2.25.0 (and before 2.16.9 LTS and before 2.7.18 LTS)
CVE-2020-36478 - August 23, 2021

An issue was discovered in Mbed TLS before 2.25.0 (and before 2.16.9 LTS and before 2.7.18 LTS). A NULL algorithm parameters entry looks identical to an array of REAL (size zero) and thus the certificate is considered valid. However, if the parameters do not match in any way, then the certificate should be considered invalid.

An issue was discovered in Mbed TLS before 2.25.0 (and before 2.16.9 LTS and before 2.7.18 LTS)
CVE-2020-36475 - August 23, 2021

An issue was discovered in Mbed TLS before 2.25.0 (and before 2.16.9 LTS and before 2.7.18 LTS). The calculations performed by mbedtls_mpi_exp_mod are not limited; thus, supplying overly large parameters could lead to denial of service when generating Diffie-Hellman key pairs.

An issue was discovered in Mbed TLS before 2.24.0 (and before 2.16.8 LTS and before 2.7.17 LTS)
CVE-2020-36476 - August 23, 2021

An issue was discovered in Mbed TLS before 2.24.0 (and before 2.16.8 LTS and before 2.7.17 LTS). There is missing zeroization of plaintext buffers in mbedtls_ssl_read to erase unused application data from memory.

An issue was discovered in Mbed TLS before 2.24.0
CVE-2020-36477 - August 23, 2021

An issue was discovered in Mbed TLS before 2.24.0. The verification of X.509 certificates when matching the expected common name (the cn argument of mbedtls_x509_crt_verify) with the actual certificate name is mishandled: when the subjecAltName extension is present, the expected name is compared to any name in that extension regardless of its type. This means that an attacker could impersonate a 4-byte or 16-byte domain by getting a certificate for the corresponding IPv4 or IPv6 address (this would require the attacker to control that IP address, though).

An issue was discovered in Arm Mbed TLS before 2.24.0
CVE-2020-36426 - July 19, 2021

An issue was discovered in Arm Mbed TLS before 2.24.0. mbedtls_x509_crl_parse_der has a buffer over-read (of one byte).

An issue was discovered in Arm Mbed TLS before 2.23.0
CVE-2020-36421 5.3 - Medium - July 19, 2021

An issue was discovered in Arm Mbed TLS before 2.23.0. Because of a side channel in modular exponentiation, an RSA private key used in a secure enclave could be disclosed.

Side Channel Attack

An issue was discovered in Arm Mbed TLS before 2.23.0
CVE-2020-36422 - July 19, 2021

An issue was discovered in Arm Mbed TLS before 2.23.0. A side channel allows recovery of an ECC private key, related to mbedtls_ecp_check_pub_priv, mbedtls_pk_parse_key, mbedtls_pk_parse_keyfile, mbedtls_ecp_mul, and mbedtls_ecp_mul_restartable.

An issue was discovered in Arm Mbed TLS before 2.23.0
CVE-2020-36423 - July 19, 2021

An issue was discovered in Arm Mbed TLS before 2.23.0. A remote attacker can recover plaintext because a certain Lucky 13 countermeasure doesn't properly consider the case of a hardware accelerator.

An issue was discovered in Arm Mbed TLS before 2.24.0
CVE-2020-36424 - July 19, 2021

An issue was discovered in Arm Mbed TLS before 2.24.0. An attacker can recover a private key (for RSA or static Diffie-Hellman) via a side-channel attack against generation of base blinding/unblinding values.

An issue was discovered in Arm Mbed TLS before 2.24.0
CVE-2020-36425 - July 19, 2021

An issue was discovered in Arm Mbed TLS before 2.24.0. It incorrectly uses a revocationDate check when deciding whether to honor certificate revocation via a CRL. In some situations, an attacker can exploit this by changing the local clock.

In Trusted Firmware Mbed TLS 2.24.0, a side-channel vulnerability in base64 PEM file decoding allows system-level (administrator) attackers to obtain information about secret RSA keys via a controlled-channel and side-channel attack on software running in isolated environments
CVE-2021-24119 4.9 - Medium - July 14, 2021

In Trusted Firmware Mbed TLS 2.24.0, a side-channel vulnerability in base64 PEM file decoding allows system-level (administrator) attackers to obtain information about secret RSA keys via a controlled-channel and side-channel attack on software running in isolated environments that can be single stepped, especially Intel SGX.

Side Channel Attack

A Lucky 13 timing side channel in mbedtls_ssl_decrypt_buf in library/ssl_msg.c in Trusted Firmware Mbed TLS through 2.23.0
CVE-2020-16150 - September 02, 2020

A Lucky 13 timing side channel in mbedtls_ssl_decrypt_buf in library/ssl_msg.c in Trusted Firmware Mbed TLS through 2.23.0 allows an attacker to recover secret key information. This affects CBC mode because of a computed time difference based on a padding length.

An issue was discovered in Arm Mbed TLS before 2.16.6 and 2.7.x before 2.7.15
CVE-2020-10932 - April 15, 2020

An issue was discovered in Arm Mbed TLS before 2.16.6 and 2.7.x before 2.7.15. An attacker that can get precise enough side-channel measurements can recover the long-term ECDSA private key by (1) reconstructing the projective coordinate of the result of scalar multiplication by exploiting side channels in the conversion to affine coordinates; (2) using an attack described by Naccache, Smart, and Stern in 2003 to recover a few bits of the ephemeral scalar from those projective coordinates via several measurements; and (3) using a lattice attack to get from there to the long-term ECDSA private key used for the signatures. Typically an attacker would have sufficient access when attacking an SGX enclave and controlling the untrusted OS.

Arm Mbed TLS before 2.16.5
CVE-2020-10941 - March 24, 2020

Arm Mbed TLS before 2.16.5 allows attackers to obtain sensitive information (an RSA private key) by measuring cache usage during an import.

The ECDSA signature implementation in ecdsa.c in Arm Mbed Crypto 2.1 and Mbed TLS through 2.19.1 does not reduce the blinded scalar before computing the inverse, which
CVE-2019-18222 - January 23, 2020

The ECDSA signature implementation in ecdsa.c in Arm Mbed Crypto 2.1 and Mbed TLS through 2.19.1 does not reduce the blinded scalar before computing the inverse, which allows a local attacker to recover the private key via side-channel attacks.

Arm Mbed TLS before 2.19.0 and Arm Mbed Crypto before 2.0.0, when deterministic ECDSA is enabled, use an RNG with insufficient entropy for blinding, which might
CVE-2019-16910 - September 26, 2019

Arm Mbed TLS before 2.19.0 and Arm Mbed Crypto before 2.0.0, when deterministic ECDSA is enabled, use an RNG with insufficient entropy for blinding, which might allow an attacker to recover a private key via side-channel attacks if a victim signs the same message many times. (For Mbed TLS, the fix is also available in versions 2.7.12 and 2.16.3.)

Arm Mbed TLS before 2.14.1, before 2.7.8, and before 2.1.17
CVE-2018-19608 4.7 - Medium - December 05, 2018

Arm Mbed TLS before 2.14.1, before 2.7.8, and before 2.1.17 allows a local unprivileged attacker to recover the plaintext of RSA decryption, which is used in RSA-without-(EC)DH(E) cipher suites.

Improper Privilege Management

ARM mbed TLS before 2.12.0, before 2.7.5, and before 2.1.14
CVE-2018-0498 4.7 - Medium - July 28, 2018

ARM mbed TLS before 2.12.0, before 2.7.5, and before 2.1.14 allows local users to achieve partial plaintext recovery (for a CBC based ciphersuite) via a cache-based side-channel attack.

Stay on top of Security Vulnerabilities

Want an email whenever new vulnerabilities are published for Arm Mbed Tls or by Arm? Click the Watch button to subscribe.

Arm
Vendor

Arm Mbed Tls
Product

subscribe