Cloudanix VulnDB

CVE-2023-6937

Medium · 5.3

CVSS

5.3

EPSS

0.5%

Published

Feb 15, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A library used for secure network connections could accept certain handshake messages it should have rejected, but the issue is minor and does not let attackers steal keys or impersonate parties.

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

wolfSSL clients prior to 5.6.6 fail to enforce that all messages within a single (D)TLS record use the same encryption keys, allowing an attacker-controlled server to place an unencrypted ServerHello followed by the remainder of the first server flight into one record that the client accepts even though TLS 1.3 requires encryption after ServerHello.

Why it matters to the business

Low-risk exposure limited to potential leakage of handshake metadata in edge-case TLS 1.3 scenarios; does not affect key negotiation or authentication and therefore carries minimal operational or compliance consequences for organizations using affected wolfSSL versions.

How an attack unfolds

An attacker positioned as a TLS server sends a single record containing both an unencrypted ServerHello and subsequent handshake messages that should have been encrypted; a vulnerable wolfSSL client accepts the record without verifying key boundaries, though the flaw cannot be leveraged to compromise session keys or authentication.

How to fix it

Upgrade wolfSSL to the version containing commit 66596ad9e1d7efa8479656872cf09c9c1870a02e (equivalent to release 5.6.6 or later) in all products and rebuild any statically linked binaries; verify the updated library is loaded at runtime.

How to confirm the fix worked

Confirm the running wolfSSL library reports version 5.6.6 or newer, or inspect the source/build for presence of commit 66596ad9e1d7efa8479656872cf09c9c1870a02e; perform a TLS 1.3 handshake test that attempts to send a mixed-key record and verify the client now rejects it.

Typical attack path

  1. Attacker establishes a network position able to serve TLS traffic to the target client
  2. Attacker constructs a TLS 1.3 ServerHello record that also contains the remainder of the first flight using the pre-ServerHello key
  3. Client accepts the mixed-key record and continues the handshake
  4. Attacker observes or influences subsequent handshake behavior without obtaining cryptographic material

How to detect it

Review TLS handshake logs or packet captures for ServerHello records that continue with additional handshake messages under the pre-ServerHello cipher; correlate with client version strings indicating wolfSSL < 5.6.6; no persistent artifacts are created on disk.

What your security team should do

  • Prioritize patching any internet-facing or high-value clients that embed wolfSSL within the next maintenance window
  • Inventory all products and dependencies that statically or dynamically link wolfSSL and schedule upgrades
  • Add wolfSSL version checks to continuous-integration and container-scanning pipelines
  • Monitor upstream wolfSSL release notes for any related follow-on fixes

The record

wolfSSL prior to 5.6.6 did not check that messages in one (D)TLS record do not span key boundaries. As a result, it was possible to combine (D)TLS messages using different keys into one (D)TLS record. The most extreme edge case is that, in (D)TLS 1.3, it was possible that an unencrypted (D)TLS 1.3 record from the server containing first a ServerHello message and then the rest of the first server flight would be accepted by a wolfSSL client. In (D)TLS 1.3 the handshake is encrypted after the ServerHello but a wolfSSL client would accept an unencrypted flight from the server. This does not compromise key negotiation and authentication so it is assigned a low severity rating.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 wolfssl 0 No fix
Debian:12 wolfssl 0 No fix
Debian:13 wolfssl 0 5.6.6-1.2
Ubuntu:16.04:LTS wolfssl 0 No fix
Ubuntu:18.04:LTS wolfssl 0 No fix
Ubuntu:20.04:LTS wolfssl 0 No fix
Ubuntu:22.04:LTS wolfssl 0 No fix
Ubuntu:24.04:LTS wolfssl 0 5.6.6-1.2
Ubuntu:Pro:16.04:LTS wolfssl 0 No fix
Ubuntu:Pro:18.04:LTS wolfssl 0 No fix
Ubuntu:Pro:20.04:LTS wolfssl 0 No fix

Related vulnerabilities