Cloudanix VulnDB

CVE-2023-5981

Medium · 5.9

CVSS

5.9

EPSS

1.3%

Published

Nov 28, 2023

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in how encryption padding is checked lets attackers potentially read messages that should stay private by measuring tiny differences in server response speed.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
High
Impact
Data Exposure
Component
Library
Class
Information Disclosure
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Timing side-channel in RSA-PSK ClientKeyExchange handling leaks whether PKCS#1 v1.5 padding is valid, enabling an attacker to distinguish correct versus malformed ciphertexts via response-time differences.

Why it matters to the business

Attackers may recover RSA-encrypted session keys or other sensitive material, leading to decryption of protected communications and exposure of confidential data in transit.

How an attack unfolds

An attacker repeatedly sends specially crafted RSA-PSK ClientKeyExchange messages containing malformed padding to a vulnerable server and measures the slight differences in response latency to perform an adaptive chosen-ciphertext attack that gradually recovers the plaintext.

How to fix it

Upgrade GnuTLS to the latest stable release that eliminates the timing difference; rebuild and restart all dependent services; disable RSA-PSK cipher suites if the upgrade cannot be performed immediately.

How to confirm the fix worked

Compare response-time distributions for valid versus invalid PKCS#1 v1.5 padding after the update; confirm the GnuTLS version string no longer matches the vulnerable range and re-run timing tests to verify constant-time behavior.

Typical attack path

  1. Scan for services using GnuTLS with RSA-PSK key exchange enabled
  2. Send multiple probe ClientKeyExchange records with varying padding errors
  3. Record high-resolution response times for each probe
  4. Use timing oracle to iteratively decrypt RSA ciphertext and recover premaster secret
  5. Derive session keys and decrypt subsequent traffic

How to detect it

Examine application and TLS handshake logs for unusually high volumes of RSA-PSK ClientKeyExchange messages from single sources; correlate with any observed timing anomalies or failed handshakes that may indicate probing.

What your security team should do

  • Prioritize patching GnuTLS on all externally reachable systems within the next maintenance window
  • Review deployed applications for RSA-PSK usage and replace with modern key-exchange methods where feasible
  • Add GnuTLS version checks to vulnerability scanning policies
  • Monitor for any public exploit code that targets this timing oracle

The record

A vulnerability was found that the response times to malformed ciphertexts in RSA-PSK ClientKeyExchange differ from response times of ciphertexts with correct PKCS#1 v1.5 padding.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:8 gnutls 0 3.6.16-8.el8_9
AlmaLinux:8 gnutls 0 3.6.16-8.el8_9.1
AlmaLinux:8 gnutls-c++ 0 3.6.16-8.el8_9
AlmaLinux:8 gnutls-c++ 0 3.6.16-8.el8_9.1
AlmaLinux:8 gnutls-dane 0 3.6.16-8.el8_9
AlmaLinux:8 gnutls-dane 0 3.6.16-8.el8_9.1
AlmaLinux:8 gnutls-devel 0 3.6.16-8.el8_9
AlmaLinux:8 gnutls-devel 0 3.6.16-8.el8_9.1
AlmaLinux:8 gnutls-utils 0 3.6.16-8.el8_9
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+deb10u11
Debian:11 gnutls28 0 3.7.1-5+deb11u4
Debian:12 gnutls28 0 3.7.9-2+deb12u1
Debian:13 gnutls28 0 3.8.2-1
Mageia:9 gnutls 0 3.8.0-2.1.mga9
Red Hat:enterprise_linux:8::appstream gnutls 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::appstream gnutls-c++ 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::appstream gnutls-c++-debuginfo 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::appstream gnutls-dane 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::appstream gnutls-dane-debuginfo 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::appstream gnutls-debuginfo 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::appstream gnutls-debugsource 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::appstream gnutls-devel 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::appstream gnutls-utils 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::appstream gnutls-utils-debuginfo 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::baseos gnutls 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::baseos gnutls-c++ 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::baseos gnutls-c++-debuginfo 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::baseos gnutls-dane 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::baseos gnutls-dane-debuginfo 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::baseos gnutls-debuginfo 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::baseos gnutls-debugsource 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::baseos gnutls-devel 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::baseos gnutls-utils 0 0:3.6.16-8.el8_9
Red Hat:enterprise_linux:8::baseos gnutls-utils-debuginfo 0 0:3.6.16-8.el8_9
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.2
Red Hat:rhel_eus:8.6::appstream gnutls-c++ 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::appstream gnutls-c++-debuginfo 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::appstream gnutls-dane 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::appstream gnutls-dane-debuginfo 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::appstream gnutls-debuginfo 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::appstream gnutls-debugsource 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::appstream gnutls-devel 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::appstream gnutls-utils 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::appstream gnutls-utils-debuginfo 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::baseos gnutls 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::baseos gnutls-c++ 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::baseos gnutls-c++-debuginfo 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::baseos gnutls-dane 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::baseos gnutls-dane-debuginfo 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::baseos gnutls-debuginfo 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::baseos gnutls-debugsource 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::baseos gnutls-devel 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::baseos gnutls-utils 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.6::baseos gnutls-utils-debuginfo 0 0:3.6.16-5.el8_6.2
Red Hat:rhel_eus:8.8::appstream gnutls 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::appstream gnutls-c++ 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::appstream gnutls-c++-debuginfo 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::appstream gnutls-dane 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::appstream gnutls-dane-debuginfo 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::appstream gnutls-debuginfo 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::appstream gnutls-debugsource 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::appstream gnutls-devel 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::appstream gnutls-utils 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::appstream gnutls-utils-debuginfo 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::baseos gnutls 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::baseos gnutls-c++ 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::baseos gnutls-c++-debuginfo 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::baseos gnutls-dane 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::baseos gnutls-dane-debuginfo 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::baseos gnutls-debuginfo 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::baseos gnutls-debugsource 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::baseos gnutls-devel 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::baseos gnutls-utils 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:8.8::baseos gnutls-utils-debuginfo 0 0:3.6.16-7.el8_8.1
Red Hat:rhel_eus:9.2::appstream gnutls 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::appstream gnutls-c++ 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::appstream gnutls-c++-debuginfo 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::appstream gnutls-dane 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::appstream gnutls-dane-debuginfo 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::appstream gnutls-debuginfo 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::appstream gnutls-debugsource 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::appstream gnutls-devel 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::appstream gnutls-utils 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::appstream gnutls-utils-debuginfo 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::baseos gnutls 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::baseos gnutls-c++ 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::baseos gnutls-c++-debuginfo 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::baseos gnutls-dane 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::baseos gnutls-dane-debuginfo 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::baseos gnutls-debuginfo 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::baseos gnutls-debugsource 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::baseos gnutls-devel 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::baseos gnutls-utils 0 0:3.7.6-21.el9_2.1
Red Hat:rhel_eus:9.2::baseos gnutls-utils-debuginfo 0 0:3.7.6-21.el9_2.1
Rocky Linux:8 gnutls 0 0:3.6.16-8.el8_9
SUSE:Enterprise Storage 7.1 gnutls 0 3.6.7-150200.14.28.1
SUSE:Enterprise Storage 7.1 gnutls 0 3.6.7-150200.14.31.1
SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS gnutls 0 3.6.7-150000.6.50.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS gnutls 0 3.6.7-150200.14.28.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-ESPOS gnutls 0 3.6.7-150200.14.28.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS gnutls 0 3.6.7-150200.14.28.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS gnutls 0 3.6.7-150200.14.31.1
SUSE:Linux Enterprise Micro 5.1 gnutls 0 3.6.7-150200.14.28.1
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.28.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.38.1
SUSE:Linux Enterprise Micro 5.5 gnutls 0 3.7.3-150400.4.38.1
SUSE:Linux Enterprise Module for Basesystem 15 SP4 gnutls 0 3.7.3-150400.4.38.1
SUSE:Linux Enterprise Module for Basesystem 15 SP5 gnutls 0 3.7.3-150400.4.38.1
SUSE:Linux Enterprise Server 15 SP1-LTSS gnutls 0 3.6.7-150000.6.50.1
SUSE:Linux Enterprise Server 15 SP2-LTSS gnutls 0 3.6.7-150200.14.28.1
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.28.1
SUSE:Linux Enterprise Server 15 SP3-LTSS gnutls 0 3.6.7-150200.14.31.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP1 gnutls 0 3.6.7-150000.6.50.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP2 gnutls 0 3.6.7-150200.14.28.1
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.28.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP3 gnutls 0 3.6.7-150200.14.31.1
Ubuntu:20.04:LTS gnutls28 0 3.6.13-2ubuntu1.9
Ubuntu:22.04:LTS gnutls28 0 3.7.3-4ubuntu1.3
Ubuntu:23.10 gnutls28 0 3.8.1-4ubuntu1.1
Ubuntu:Pro:16.04:LTS gnutls28 0 No fix
Ubuntu:Pro:18.04:LTS gnutls28 0 3.5.18-1ubuntu1.6+esm1
openSUSE:Leap 15.4 gnutls 0 3.7.3-150400.4.38.1
openSUSE:Leap 15.5 gnutls 0 3.7.3-150400.4.38.1
openSUSE:Leap Micro 5.4 gnutls 0 3.7.3-150400.4.38.1
openSUSE:Tumbleweed gnutls 0 3.8.2-1.1

Related vulnerabilities