Side channel attack on classical CBC decryption in (D)TLS in mbed TLS - CVE-2020-16150
Published: September 1, 2020 / Updated: July 13, 2026
Vulnerability details
The vulnerability allows a local user to perform a side-channel attack.
The vulnerability is caused due to mbed TLS used dummy rounds of the compression function associated with the hash
used for HMAC in order to hide the length of the padding to remote
attackers when ecrypting/authenticating (D)TLS record in a connection using a CBC ciphersuite without the Encrypt-then-Mac extension. A local user who is able to observe the state of the cache could monitor the presence of mbedtls_md_process()
in the cache in order to determine when the actual computation ends and
when the dummy rounds start. This is a reliable target as it's always
called at least once.
Successful exploitation of the vulnerability may allow an attacker with access to enough information about the state of the cache (including, but not limited to, an untrusted operating system attacking a secure enclave such as SGX or the TrustZone secure world) to recover portions of the plaintext of a (D)TLS record.
Affected software
Arch Linux
Fedora
mbedtls (Alpine package)
mbedtls
How to mitigate CVE-2020-16150
mbedtls (Alpine package) - update to 2.16.8-r0
mbedtls - addressed in versions 2.7.17-1.el6, 2.7.17-1.el7, 2.16.8-1.el8, 2.16.8-1.fc31, 2.16.8-1.fc32, 2.16.8-1.fc33
External References
Related Security Bulletins
- Multiple vulnerabilities in Mbed TLS
- Side channel attack on classical CBC decryption in (D)TLS in mbedtls (Alpine package)
- Arch Linux update for mbedtls
- Fedora 31 update for mbedtls
- Fedora 32 update for mbedtls
- Fedora 33 update for mbedtls
- Fedora EPEL 8 update for mbedtls
- Fedora EPEL 7 update for mbedtls
- Fedora EPEL 6 update for mbedtls