Automated Threat Modeling

Brief Summary: GnuTLS CVE-2026-33845 DTLS Integer Underflow Leading to Heap Overrun

A short review of CVE-2026-33845, a high-severity integer underflow in GnuTLS DTLS handshake reassembly that enables remote denial of service or information disclosure via crafted zero-length fragments.

CVE Analysis

6 min read

ZeroPath CVE Analysis
ZeroPath CVE Analysis

2026-04-30

Brief Summary: GnuTLS CVE-2026-33845 DTLS Integer Underflow Leading to Heap Overrun
Experimental AI-Generated Content

This CVE analysis is an experimental publication that is completely AI-generated. The content may contain errors or inaccuracies and is subject to change as more information becomes available. We are continuously refining our process.

If you have feedback, questions, or notice any errors, please reach out to us.

[email protected]

Introduction

A single malformed DTLS handshake fragment, carrying zero bytes of payload but claiming a non-zero offset, is enough to trigger a heap overrun in GnuTLS and crash any service that relies on it for UDP-based secure communication. This integer underflow in the DTLS reassembly path is tracked as CVE-2026-33845, with a CVSS score of 7.5. It was patched in GnuTLS 3.8.13 on April 29, 2026, together with two other related DTLS vulnerabilities, and the three together reveal significant fragility in the library's fragment-handling logic.

GnuTLS is a free software implementation of the TLS, SSL, and DTLS protocols, and its core cryptographic API is used across numerous Linux distributions and open source projects. It is the default or alternative TLS backend for applications ranging from mail servers to VPN software, so its attack surface covers a broad swath of infrastructure. A vulnerability in its protocol parsing code can ripple out to many downstream consumers.

Technical Information

The vulnerability is in the DTLS handshake fragment reassembly code in GnuTLS. Unlike TLS over TCP, DTLS runs over UDP and must handle message fragmentation and reordering at the protocol level. During the handshake, large messages can be split into fragments, and each fragment is described by a fragment offset and a fragment length. The reassembly logic collects these fragments and reconstructs the original handshake message.

Root Cause

The root cause is improper validation of fragment parameters (CWE-191: Integer Underflow). Suppose a DTLS handshake fragment arrives with a zero length and a non-zero offset, for a handshake message whose total length is non-empty. The reassembly code then performs an arithmetic operation that underflows. The underflow corrupts the calculation of buffer boundaries during reassembly, which in turn causes an out-of-bounds read on the heap.

Attack Flow

The exploitation path is straightforward and requires no authentication:

  1. An attacker sends a DTLS ClientHello or other handshake initiation to a target service that uses GnuTLS for DTLS.
  2. During the handshake exchange, the attacker injects a specially crafted handshake fragment. The fragment declares a zero-length payload but specifies a non-zero fragment offset, while the overall handshake message has a non-empty expected length.
  3. The GnuTLS reassembly code accepts this malformed fragment without adequate validation.
  4. To compute the remaining bytes to reassemble, the code subtracts the fragment length (zero) from a value derived from the offset and the total message length. Because the length is zero and the offset is not, the result underflows.
  5. A subsequent memory read uses the underflowed value as a size or index parameter, so the library reads beyond the bounds of the allocated heap buffer.
  6. This out-of-bounds read can crash the process (denial of service). Depending on heap layout and application behavior, it may also leak portions of heap memory back to the attacker (information disclosure).

DTLS runs over UDP, so the attacker does not need to complete a TCP handshake, which lowers the barrier to exploitation further. A single crafted UDP packet during the initial handshake, before any session is established, can trigger the flaw.

Joshua Rogers of the AISLE Research Team discovered and reported this flaw, and it is tracked under vendor advisory GNUTLS SA 2026 04 29 3. It was patched alongside two other DTLS reassembly vulnerabilities:

Vulnerability IDVendor AdvisoryImpactCVSS ScoreFix Version
CVE-2026-33845GNUTLS SA 2026 04 29 3Remotely triggerable underflow leading to heap overrun7.5 High3.8.13
CVE-2026-42009GNUTLS SA 2026 04 29 2Comparator function contract violation causing undefined behavior7.5 High3.8.13
CVE-2026-33846GNUTLS SA 2026 04 29 1Missing boundary checks enabling heap overwrite7.5 High3.8.13

That all three needed fixing at the same time shows how complex and fragile the previous DTLS fragment reassembly implementation was.

Affected Systems and Versions

The vulnerability affects GnuTLS versions in the 3.8.x branch prior to 3.8.13. The fix was released in GnuTLS 3.8.13 on April 29, 2026. Any application or service that is linked against a vulnerable version of GnuTLS and accepts DTLS connections is potentially affected. This includes but is not limited to:

  • VPN concentrators and gateways using GnuTLS for DTLS tunneling
  • WebRTC infrastructure
  • IoT gateways and embedded devices
  • Mail servers and other network services configured with DTLS support

Red Hat has issued security advisories RHSA-2026:5585 and RHSA-2026:3477 for affected packages in its distribution.

Vendor Security History

GnuTLS maintains a transparent security advisory process and has historically responded rapidly to disclosed vulnerabilities. Version 3.8.13 fixed three related DTLS reassembly flaws (CVE-2026-33845, CVE-2026-42009, and CVE-2026-33846) in one release, a coordinated approach to security hardening. Three distinct vulnerabilities in the same subsystem suggest that the DTLS fragment reassembly code had accumulated technical debt. Even so, the vendor addressed all three in a single release and published clear advisories, which reflects well on its security posture.

References

Detect & fix
what others miss

Works with
  • GitHub
  • GitLab
  • Bitbucket
  • Azure DevOps Services
  • Gerrit
  • CVS
  • Jira
  • Linear
  • Slack
  • Security Compass
Explore integrations
Security magnifying glass visualization