Every CVE Search/ Get API key

CVE-2025-59438

Mbed TLS through 3.6.4 has an Observable Timing Discrepancy.

5.3 MediumFix available

Mbed TLS through 3.6.4 has an Observable Timing Discrepancy.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
Low
Integrity
None
Availability
None

Exploit likelihood

0.26%Up 0.2 points since Oct 22, 2025
90%50%10%1%

What each source reports

CVE List Score used 5.3

Mbed TLS through 3.6.4 has an Observable Timing Discrepancy.

Record
CVE-2025-59438
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-208
Updated
2026-11-02
EUVDEUVD-2025-35171 5.3

Mbed TLS through 3.6.4 has an Observable Timing Discrepancy.

Record
EUVD-2025-35171
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-mqc9-9p37-h763 5.3

Mbed TLS through 3.6.4 has an Observable Timing Discrepancy.

Mbed TLS through 3.6.4 has an Observable Timing Discrepancy.

Record
GHSA-mqc9-9p37-h763
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-208
Updated
2026-11-02
NVD 5.3

Mbed TLS through 3.6.4 has an Observable Timing Discrepancy.

Record
CVE-2025-59438
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-208
Updated
2026-11-05
OSVALPINE-CVE-2025-59438 5.3

Mbed TLS through 3.6.4 has an Observable Timing Discrepancy.

Record
ALPINE-CVE-2025-59438
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Updated
2026-11-03
OSV 5.3

Mbed TLS through 3.6.4 has an Observable Timing Discrepancy.

Record
CVE-2025-59438
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Updated
2026-11-07
Show 17 moreShow less
OSVDEBIAN-CVE-2025-59438 5.3

Mbed TLS through 3.6.4 has an Observable Timing Discrepancy.

Record
DEBIAN-CVE-2025-59438
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Updated
2026-11-06
OSVJLSEC-2025-233 5.3

Padding oracle through timing of cipher error reporting

Vulnerability

In symmetric encryption modes that involve padding, if an attacker can submit ciphertexts for decryption and learn whether the padding is valid, this provides partial information about the plaintext. If the attacker can also submit input that the victim encrypts together with a secret, this can allow the attacker to recover the whole secret part. This is known as a padding oracle attack. The attacker may learn the validity of the padding directly or indirectly, for example through timing.

In the Mbed TLS legacy API (mbedtls_cipher_crypt(), mbedtls_cipher_finish()), the problematic modes are ECB and CBC with any padding other than NONE. In the PSA Crypto API (psa_cipher_decrypt(), psa_cipher_finish()), the problematic algorithm is PSA_ALG_CBC_PKCS7.

Mbed TLS takes care to check the padding in constant time inside the legacy cipher modules, so mbedtls_cipher_crypt() and mbedtls_cipher_finish() are not vulnerable. However, application code may be vulnerable if it handles errors from these functions in a way that is not constant-time.

In the PSA API, when the built-in implementation of CBC-PKCS7 is used, the PSA functions (psa_cipher_decrypt(), psa_cipher_finish()) call mbedtls_cipher_finish() and translate its error codes into PSA error codes. This translation is not constant-time, and a local unprivileged attacker may be able to observe which error is raised by timing shared resources such as a code cache or a branch predictor.

In the PSA API, when using a driver, there is no error translation. However some code paths inside the library distinguish the error case from the success case, which allows the same attack.

Impact

Local attackers may be able to recover plaintexts encrypted with CBC-PKCS7 or other symmetric encryption mode using padding when it is decrypted through the PSA API.

Applications using the legacy API to decrypt with padding may be affected through their own error handling.

Affected versions

All versions of Mbed TLS up to 3.6.4 are affected.

TF-PSA-Crypto 1.0.0beta is also affected.

Work-around

Applications are not affected if they only accept authenticated ciphertexts for CBC decryption, i.e. if they only use CBC as part of an encrypt-then-MAC construction. (Applications should use AEAD modes instead of CBC-based modes whenever possible.)

Resolution

Affected users should upgrade to Mbed TLS 3.6.5 or TF-PSA-Crypto 1.0.0 or above.

Additionally, applications using mbedtls_cipher_crypt() or mbedtls_cipher_finish() with a CBC or EBC mode with padding should review their error handling, and should consider switching to the new function mbedtls_cipher_finish_padded() which simplifies the handling of invalid-padding conditions.

Applications doing decryption with PSA_ALG_CBC_PKCS7 should handle errors carefully if local timing attacks are a concern. (This also applies to asymmetric decryption with PSA_ALG_RSA_PKCS1V15_CRYPT.)

Record
JLSEC-2025-233
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Updated
2026-11-02
OSVUBUNTU-CVE-2025-59438 5.3

Mbed TLS through 3.6.4 has an Observable Timing Discrepancy.

Record
UBUNTU-CVE-2025-59438
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Updated
2026-11-02
OSVopenSUSE-SU-2025:15662-1 No score

micropython-1.26.0-2.1 on GA media

These are all security issues fixed in the micropython-1.26.0-2.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2025:15662-1
Updated
2026-11-02
OSVopenSUSE-SU-2025:15747-1 No score

libeverest-3.6.5-1.1 on GA media

These are all security issues fixed in the libeverest-3.6.5-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2025:15747-1
Updated
2026-11-02
OSVopenSUSE-SU-2025:20035-1 No score

Security update for micropython

This update for micropython fixes the following issues:

Changes in micropython:

  • Build with mbedtls-3.6.5 instead of bundled 3.6.2 to fix CVE-2025-59438

Version 1.26.0:

  • Added machine.I2CTarget for creating I2C target devices on multiple ports.
  • New MCU support: STM32N6xx (800 MHz, ML accel) & ESP32-C2 (WiFi + BLE).
  • Major float accuracy boost (~28% → ~98%), constant folding in compiler.
  • Optimized native/Viper emitters; reduced heap use for slices.
  • Time functions standardized (1970–2099); new boards across ESP32, SAMD, STM32, Zephyr.
  • ESP32: ESP-IDF 5.4.2, flash auto-detect, PCNT class, LAN8670 PHY.
  • RP2: compressed errors, better lightsleep, hard IRQ timers.
  • Zephyr v4.0.0: PWM, SoftI2C/SPI, BLE runtime services, boot.py/main.py support.
  • mpremote adds fs tree, improved df, portable config paths.
  • Updated lwIP, LittleFS, libhydrogen, stm32lib; expanded hardware/CI tests.
Record
openSUSE-SU-2025:20035-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:10083-1 No score

vlang-0.5-2.1 on GA media

These are all security issues fixed in the vlang-0.5-2.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:10083-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:10378-1 No score

ovmf-202602-5.1 on GA media

These are all security issues fixed in the ovmf-202602-5.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:10378-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:11790-1 No score

libmbedcrypto7-2.28.10-5.1 on GA media

These are all security issues fixed in the libmbedcrypto7-2.28.10-5.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:11790-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:20499-1 No score

Security update for ovmf

This update for ovmf fixes the following issue:

  • CVE-2025-59438: mbedtls: padding oracle attack possible through timing of cipher error reporting (bsc#1252441).
Record
openSUSE-SU-2026:20499-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:21144-1 No score

Security update for mbedtls

This update for mbedtls fixes the following issues:

Changes in mbedtls:

  • Update to 3.6.6 (LTS maintenance update from 3.6.1); security fixes accumulated across the 3.6.2-3.6.6 releases:
    • CVE-2024-49195 (boo#1231708): buffer underrun in pkwrite when writing an opaque key pair
    • CVE-2025-27809 (boo#1240051): certificate verification accepted arbitrary hostnames
    • CVE-2025-27810 (boo#1240052): possible authentication bypass on failed memory allocation / hardware errors
    • CVE-2025-47917 (boo#1246783): misleading memory management in mbedtls_x509_string_to_names()
    • CVE-2025-48965 (boo#1246784): NULL pointer dereference after mbedtls_asn1_store_named_data()
    • CVE-2025-49087 (boo#1246973): timing side channel in PKCS#7 padding removal
    • CVE-2025-49600 (boo#1245808): unchecked return values in LMS verification allow signature bypass via fault injection
    • CVE-2025-49601 (boo#1245809): out-of-bounds read in mbedtls_lms_import_public_key()
    • CVE-2025-52496 (boo#1245810): race in AES-NI support detection can lead to AES key extraction or GCM forgery
    • CVE-2025-52497 (boo#1245811): one-byte heap underflow when parsing PEM-encrypted material
    • CVE-2025-54764 (boo#1252341): timing attacks in RSA operations
    • CVE-2025-59438 (boo#1252454): padding-oracle attack via timing of cipher error reporting
    • CVE-2026-25833: PSA RNG state duplicated across fork()
    • CVE-2026-25834: TLS 1.3 HelloRetryRequest man-in-the-middle session-resumption downgrade
    • CVE-2026-25835: RNG state duplicated when application/VM state is cloned
Record
openSUSE-SU-2026:21144-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:21864-1 No score

Security update for mbedtls-2

This update for mbedtls-2 fixes the following issues:

Changes in mbedtls-2:

  • CVE-2025-52496: race condition in AESNI support detection, AES key disclosure / GCM forgery in multithreaded programs (boo#1245810)
  • CVE-2025-59438: padding oracle through timing of cipher error reporting (boo#1252454)
Record
openSUSE-SU-2026:21864-1
Updated
2026-11-02
OSVROOT-OS-DEBIAN-12-CVE-2025-59438 No score

CVE-2025-59438 in mbedtls - Patched by Root

Root has patched CVE-2025-59438 in the mbedtls package for Root:Debian:12. Multiple fixed versions available.

Record
ROOT-OS-DEBIAN-12-CVE-2025-59438
Updated
2026-11-02
OSVSUSE-SU-2026:1413-1 No score

Security update for ovmf

This update for ovmf fixes the following issue:

  • CVE-2025-59438: mbedtls: padding oracle attack possible through timing of cipher error reporting (bsc#1252441).
Record
SUSE-SU-2026:1413-1
Updated
2026-11-02
OSVSUSE-SU-2026:20769-1 No score

Security update for ovmf

This update for ovmf fixes the following issue:

  • CVE-2025-59438: mbedtls: padding oracle attack possible through timing of cipher error reporting (bsc#1252441).
Record
SUSE-SU-2026:20769-1
Updated
2026-11-02
OSVSUSE-SU-2026:21018-1 No score

Security update for ovmf

This update for ovmf fixes the following issue:

  • CVE-2025-59438: mbedtls: padding oracle attack possible through timing of cipher error reporting (bsc#1252441).
Record
SUSE-SU-2026:21018-1
Updated
2026-11-02
OSVSUSE-SU-2026:21161-1 No score

Security update for ovmf

This update for ovmf fixes the following issue:

  • CVE-2025-59438: mbedtls: padding oracle attack possible through timing of cipher error reporting (bsc#1252441).
Record
SUSE-SU-2026:21161-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
mbedtls
Alpine:v3.20
before 3.6.5-r0
3.6.5-r0
mbedtls
Alpine:v3.21
before 3.6.5-r0
3.6.5-r0
mbedtls
Alpine:v3.22
before 3.6.5-r0
3.6.5-r0
mbedtls
Alpine:v3.23
before 3.6.5-r0
3.6.5-r0
mbedtls
Alpine:v3.24
before 3.6.5-r0
3.6.5-r0
mbedtls3
Alpine:v3.24
before 3.6.5-r0
3.6.5-r0
mbedtls
Debian:12
All versions, plus listed versions
2.28.3-12.28.4-12.28.5-12.28.6-12.28.7-1
Show 18 moreShow less
2.28.7-1.12.28.7-1.1~exp12.28.8-13.6.0-13.6.0-23.6.0-33.6.2-13.6.2-23.6.2-33.6.3-13.6.4-13.6.4-23.6.5-0.13.6.5-0.1~deb13u13.6.6-0.13.6.6-0.1~deb13u13.6.7-23.6.7-3
None known
mbedtls
Debian:13
before 3.6.5-0.1~deb13u1, plus listed versions
3.6.4-2
3.6.5-0.1~deb13u1
mbedtls
Debian:14
before 3.6.5-0.1, plus listed versions
3.6.4-23.6.5-0.1~deb13u1
3.6.5-0.1
MbedTLS_jll
Julia
All versions None known
Show 23 moreShow less
Affected packages
PackageAffectedFixed
mbedtls
Root:Debian:12
before 2.28.3-1.root.io.14
2.28.3-1.root.io.142.28.3-1.root.io.152.28.3-1.root.io.162.28.3-1.root.io.132.28.3-1.aikido.17
rootio-mbedtls
Root:Debian:12
before 2.28.3-1.root.io.14
2.28.3-1.root.io.142.28.3-1.root.io.152.28.3-1.root.io.162.28.3-1.root.io.132.28.3-1.aikido.17
ovmf
SUSE:Linux Enterprise Module for Package Hub 15 SP7
before 202408-150700.3.15.1
202408-150700.3.15.1
ovmf
SUSE:Linux Enterprise Module for Server Applications 15 SP7
before 202408-150700.3.15.1
202408-150700.3.15.1
ovmf
SUSE:Linux Micro 6.1
before 202402-slfo.1.1_2.1
202402-slfo.1.1_2.1
ovmf
SUSE:Linux Micro 6.2
before 202502-160000.4.1
202502-160000.4.1
ovmf
SUSE:Linux Enterprise Server 16.0
before 202502-160000.4.1
202502-160000.4.1
ovmf
SUSE:Linux Enterprise Server for SAP applications 16.0
before 202502-160000.4.1
202502-160000.4.1
mbedtls
Ubuntu:16.04:LTS
All versions, plus listed versions
2.1.2-12.2.0-12.2.1-12.2.1-22.2.1-2ubuntu0.12.2.1-2ubuntu0.22.2.1-2ubuntu0.3
None known
mbedtls
Ubuntu:Pro:18.04:LTS
All versions, plus listed versions
2.5.1-1ubuntu12.6.0-12.7.0-22.8.0-12.8.0-1ubuntu0.1~esm1
None known
mbedtls
Ubuntu:Pro:20.04:LTS
All versions, plus listed versions
2.16.2-12.16.3-12.16.4-1ubuntu22.16.4-1ubuntu2+esm1
None known
mbedtls
Ubuntu:22.04:LTS
All versions, plus listed versions
2.16.9-0.1ubuntu12.16.11-0.1ubuntu12.16.11-0.32.28.0-12.28.0-1build1
None known
mbedtls
Ubuntu:24.04:LTS
All versions, plus listed versions
2.28.3-12.28.6-1ubuntu12.28.7-1ubuntu12.28.7-1.1ubuntu12.28.8-1
None known
mbedtls
Ubuntu:25.10
All versions, plus listed versions
3.6.2-3ubuntu1
None known
micropython
openSUSE:Tumbleweed
before 1.26.0-2.1
1.26.0-2.1
mbedtls
openSUSE:Tumbleweed
From an advisory covering 2 CVEs
before 3.6.5-1.1
3.6.5-1.1
micropython
openSUSE:Leap 16.0
before 1.26.0-bp160.1.1
1.26.0-bp160.1.1
vlang
openSUSE:Tumbleweed
before 0.5-2.1
0.5-2.1
ovmf
openSUSE:Tumbleweed
before 202602-5.1
202602-5.1
mbedtls-2
openSUSE:Tumbleweed
From an advisory covering 2 CVEs
before 2.28.10-5.1
2.28.10-5.1
ovmf
openSUSE:Leap 16.0
before 202502-160000.4.1
202502-160000.4.1
mbedtls
openSUSE:Leap 16.0
From an advisory covering 15 CVEs
before 3.6.6-bp160.1.1
3.6.6-bp160.1.1
mbedtls-2
openSUSE:Leap 16.0
From an advisory covering 2 CVEs
before 2.28.10-bp160.2.1
2.28.10-bp160.2.1

History

History
RecordedChangedSources
affectedOSV
affected
factsNVD
affectedOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2025-59438 is a medium vulnerability (CVSS 5.3) in Arm Mbed Tls, published October 21, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.26%, the 18th percentile. Fixed in mbedtls 3.6.5-r0.

References

Show 35 moreShow less
MoveEnter Open