CVE-2024-0553
High · 7.5CVSS
7.5
EPSS
1.6%
Published
Jan 16, 2024
CISA due date
—
Cloudanix analysis
A flaw in a widely used encryption library can let attackers steal secret keys by carefully timing how the software responds, potentially exposing private communications.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Library
- Class
- Cryptographic Weakness
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Differing response times to malformed RSA-PSK ClientKeyExchange ciphertexts versus correctly padded PKCS#1 v1.5 messages enable a remote timing side-channel that can leak sensitive key material; this is an incomplete fix for the prior related weakness.
Why it matters to the business
Organizations relying on GnuTLS for TLS connections face risk of cryptographic key exposure, which can lead to decryption of past or future sessions and loss of confidentiality for protected data.
How an attack unfolds
An attacker repeatedly sends specially crafted RSA-PSK ClientKeyExchange messages containing malformed padding, measures the server's response-time variations, and uses statistical analysis to recover the pre-master secret and derive session keys.
How to fix it
Upgrade GnuTLS to the commit 2f04c14daa086889b4e85f7056c39d23766ddaa1 or later; rebuild and redeploy all dependent applications; disable RSA-PSK cipher suites until the update is applied if feasible.
How to confirm the fix worked
Confirm the installed GnuTLS library reports a version containing commit 2f04c14daa086889b4e85f7056c39d23766ddaa1; run the project's timing-attack regression tests and verify constant-time behavior under load.
Typical attack path
- Locate services using GnuTLS that negotiate RSA-PSK cipher suites
- Establish multiple TLS handshakes with crafted ClientKeyExchange payloads
- Record high-resolution timing measurements of server responses
- Apply statistical techniques to distinguish correct versus incorrect padding
- Recover pre-master secret and decrypt recorded traffic
How to detect it
Review TLS handshake logs for unusually high volumes of RSA-PSK ClientKeyExchange messages from single sources; correlate with application performance metrics showing variable response latency during key exchange; no definitive post-exploitation artifacts are typically present.
What your security team should do
- Immediately inventory all systems using GnuTLS and schedule patching to the fixed commit
- Prioritize update of internet-facing services that accept RSA-PSK
- Temporarily disable RSA-PSK cipher suites where operationally acceptable
- Monitor upstream GnuTLS releases for any follow-on corrections
The record
A vulnerability was found in GnuTLS. The response times to malformed ciphertexts in RSA-PSK ClientKeyExchange differ from the response times of ciphertexts with correct PKCS#1 v1.5 padding. This issue may allow a remote attacker to perform a timing side-channel attack in the RSA-PSK key exchange, potentially leading to the leakage of sensitive data. CVE-2024-0553 is designated as an incomplete resolution for CVE-2023-5981.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | gnutls | 0 | 3.6.16-8.el8_9.1 |
| AlmaLinux:8 | gnutls-c++ | 0 | 3.6.16-8.el8_9.1 |
| AlmaLinux:8 | gnutls-dane | 0 | 3.6.16-8.el8_9.1 |
| AlmaLinux:8 | gnutls-devel | 0 | 3.6.16-8.el8_9.1 |
| AlmaLinux:8 | gnutls-utils | 0 | 3.6.16-8.el8_9.1 |
| AlmaLinux:9 | gnutls | 0 | 3.7.6-23.el9_3.3 |
| AlmaLinux:9 | gnutls-c++ | 0 | 3.7.6-23.el9_3.3 |
| AlmaLinux:9 | gnutls-dane | 0 | 3.7.6-23.el9_3.3 |
| AlmaLinux:9 | gnutls-devel | 0 | 3.7.6-23.el9_3.3 |
| AlmaLinux:9 | gnutls-utils | 0 | 3.7.6-23.el9_3.3 |
| Alpine:v3.18 | gnutls | 0 | 3.8.3-r0 |
| Alpine:v3.19 | gnutls | 0 | 3.8.3-r0 |
| Alpine:v3.20 | gnutls | 0 | 3.8.3-r0 |
| Alpine:v3.21 | gnutls | 0 | 3.8.3-r0 |
| Alpine:v3.22 | gnutls | 0 | 3.8.3-r0 |
| Debian:10 | gnutls28 | 0 | 3.6.7-4+deb10u12 |
| Debian:11 | gnutls28 | 0 | 3.7.1-5+deb11u5 |
| Debian:12 | gnutls28 | 0 | 3.7.9-2+deb12u2 |
| Debian:13 | gnutls28 | 0 | 3.8.3-1 |
| Mageia:9 | gnutls | 0 | 3.8.0-2.2.mga9 |
| Red Hat:enterprise_linux:8::appstream | gnutls | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::appstream | gnutls-c++ | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::appstream | gnutls-c++-debuginfo | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::appstream | gnutls-dane | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::appstream | gnutls-dane-debuginfo | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::appstream | gnutls-debuginfo | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::appstream | gnutls-debugsource | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::appstream | gnutls-devel | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::appstream | gnutls-utils | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::appstream | gnutls-utils-debuginfo | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::baseos | gnutls | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::baseos | gnutls-c++ | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::baseos | gnutls-c++-debuginfo | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::baseos | gnutls-dane | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::baseos | gnutls-dane-debuginfo | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::baseos | gnutls-debuginfo | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::baseos | gnutls-debugsource | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::baseos | gnutls-devel | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::baseos | gnutls-utils | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:8::baseos | gnutls-utils-debuginfo | 0 | 0:3.6.16-8.el8_9.1 |
| Red Hat:enterprise_linux:9::appstream | gnutls | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::appstream | gnutls-c++ | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::appstream | gnutls-c++-debuginfo | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::appstream | gnutls-dane | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::appstream | gnutls-dane-debuginfo | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::appstream | gnutls-debuginfo | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::appstream | gnutls-debugsource | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::appstream | gnutls-devel | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::appstream | gnutls-utils | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::appstream | gnutls-utils-debuginfo | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::baseos | gnutls | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::baseos | gnutls-c++ | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::baseos | gnutls-c++-debuginfo | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::baseos | gnutls-dane | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::baseos | gnutls-dane-debuginfo | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::baseos | gnutls-debuginfo | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::baseos | gnutls-debugsource | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::baseos | gnutls-devel | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::baseos | gnutls-utils | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:enterprise_linux:9::baseos | gnutls-utils-debuginfo | 0 | 0:3.7.6-23.el9_3.3 |
| Red Hat:rhel_eus:8.6::appstream | gnutls | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::appstream | gnutls-c++ | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::appstream | gnutls-c++-debuginfo | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::appstream | gnutls-dane | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::appstream | gnutls-dane-debuginfo | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::appstream | gnutls-debuginfo | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::appstream | gnutls-debugsource | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::appstream | gnutls-devel | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::appstream | gnutls-utils | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::appstream | gnutls-utils-debuginfo | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::baseos | gnutls | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::baseos | gnutls-c++ | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::baseos | gnutls-c++-debuginfo | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::baseos | gnutls-dane | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::baseos | gnutls-dane-debuginfo | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::baseos | gnutls-debuginfo | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::baseos | gnutls-debugsource | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::baseos | gnutls-devel | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::baseos | gnutls-utils | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.6::baseos | gnutls-utils-debuginfo | 0 | 0:3.6.16-5.el8_6.3 |
| Red Hat:rhel_eus:8.8::appstream | gnutls | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::appstream | gnutls-c++ | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::appstream | gnutls-c++-debuginfo | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::appstream | gnutls-dane | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::appstream | gnutls-dane-debuginfo | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::appstream | gnutls-debuginfo | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::appstream | gnutls-debugsource | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::appstream | gnutls-devel | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::appstream | gnutls-utils | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::appstream | gnutls-utils-debuginfo | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::baseos | gnutls | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::baseos | gnutls-c++ | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::baseos | gnutls-c++-debuginfo | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::baseos | gnutls-dane | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::baseos | gnutls-dane-debuginfo | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::baseos | gnutls-debuginfo | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::baseos | gnutls-debugsource | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::baseos | gnutls-devel | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::baseos | gnutls-utils | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:8.8::baseos | gnutls-utils-debuginfo | 0 | 0:3.6.16-7.el8_8.2 |
| Red Hat:rhel_eus:9.2::appstream | gnutls | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::appstream | gnutls-c++ | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::appstream | gnutls-c++-debuginfo | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::appstream | gnutls-dane | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::appstream | gnutls-dane-debuginfo | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::appstream | gnutls-debuginfo | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::appstream | gnutls-debugsource | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::appstream | gnutls-devel | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::appstream | gnutls-utils | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::appstream | gnutls-utils-debuginfo | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::baseos | gnutls | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::baseos | gnutls-c++ | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::baseos | gnutls-c++-debuginfo | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::baseos | gnutls-dane | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::baseos | gnutls-dane-debuginfo | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::baseos | gnutls-debuginfo | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::baseos | gnutls-debugsource | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::baseos | gnutls-devel | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::baseos | gnutls-utils | 0 | 0:3.7.6-21.el9_2.2 |
| Red Hat:rhel_eus:9.2::baseos | gnutls-utils-debuginfo | 0 | 0:3.7.6-21.el9_2.2 |
| Rocky Linux:8 | gnutls | 0 | 0:3.6.16-8.el8_9.1 |
| SUSE:Enterprise Storage 7.1 | gnutls | 0 | 3.6.7-150200.14.31.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | gnutls | 0 | 3.6.7-150200.14.31.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | gnutls | 0 | 3.6.7-150200.14.31.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | gnutls | 0 | 3.7.3-150400.4.41.3 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | gnutls | 0 | 3.7.3-150400.4.41.3 |
| SUSE:Linux Enterprise Micro 5.1 | gnutls | 0 | 3.6.7-150200.14.31.1 |
| SUSE:Linux Enterprise Micro 5.2 | gnutls | 0 | 3.6.7-150200.14.31.1 |
| SUSE:Linux Enterprise Micro 5.3 | gnutls | 0 | 3.7.3-150400.1.3.1 |
| SUSE:Linux Enterprise Micro 5.4 | gnutls | 0 | 3.7.3-150400.4.41.3 |
| SUSE:Linux Enterprise Micro 5.5 | gnutls | 0 | 3.7.3-150400.4.41.3 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | gnutls | 0 | 3.7.3-150400.4.41.3 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | gnutls | 0 | 3.6.7-150200.14.31.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | gnutls | 0 | 3.6.7-150200.14.31.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | gnutls | 0 | 3.7.3-150400.4.41.3 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | gnutls | 0 | 3.6.7-150200.14.31.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | gnutls | 0 | 3.6.7-150200.14.31.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | gnutls | 0 | 3.7.3-150400.4.41.3 |
| SUSE:Manager Proxy 4.3 | gnutls | 0 | 3.7.3-150400.4.41.3 |
| SUSE:Manager Server 4.3 | gnutls | 0 | 3.7.3-150400.4.41.3 |
| Ubuntu:20.04:LTS | gnutls28 | 0 | 3.6.13-2ubuntu1.10 |
| Ubuntu:22.04:LTS | gnutls28 | 0 | 3.7.3-4ubuntu1.4 |
| Ubuntu:23.10 | gnutls28 | 0 | 3.8.1-4ubuntu1.2 |
| Ubuntu:24.04:LTS | gnutls28 | 0 | 3.8.3-1ubuntu1 |
| Ubuntu:Pro:16.04:LTS | gnutls28 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | gnutls28 | 0 | No fix |
| Ubuntu:Pro:FIPS-updates:24.04:LTS | gnutls28 | 0 | No fix |
| openSUSE:Leap 15.5 | gnutls | 0 | 3.7.3-150400.4.41.3 |
| openSUSE:Leap Micro 5.4 | gnutls | 0 | 3.7.3-150400.4.41.3 |
| openSUSE:Tumbleweed | gnutls | 0 | 3.8.3-1.1 |
Related vulnerabilities
- CVE-2024-28834 A flaw was found in GnuTLS. Also affects gnutls
- CVE-2023-5981 A vulnerability was found that the response times to malformed ciphertexts in RSA-PSK… Also affects gnutls
- CVE-2024-28835 A flaw has been discovered in GnuTLS where an application crash can be induced when… Also affects gnutls
- CVE-2017-7507 GnuTLS version 3.5.12 and earlier is vulnerable to a NULL pointer dereference while… Also affects gnutls
- CVE-2011-3389 The SSL protocol, as used in certain configurations in Microsoft Windows and Microsoft… Also affects gnutls28
- CVE-2017-5334 Double free vulnerability in the gnutls_x509_ext_import_proxy function in GnuTLS before… Also affects gnutls28
- CVE-2016-7444 The gnutls_ocsp_resp_check_crt function in lib/x509/ocsp.c in GnuTLS before 3.4.15 and… Also affects gnutls28
- CVE-2015-7575 Mozilla Network Security Services (NSS) before 3.20.2, as used in Mozilla Firefox before… Also affects gnutls28