CVE-2014-0221
NoneCVSS
—
EPSS
87.9%
Published
Jun 5, 2014
CISA due date
—
Cloudanix analysis
A flaw in widely used encryption software can let attackers knock services offline by sending a single specially crafted network message.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The dtls1_get_message_fragment function in d1_both.c fails to properly validate DTLS hello messages during an invalid handshake, triggering unbounded recursion that crashes the client process.
Why it matters to the business
Systems relying on DTLS over UDP can be taken offline remotely, causing service outages and requiring manual restarts until patched.
How an attack unfolds
An unauthenticated remote attacker crafts a malformed DTLS hello message inside an invalid handshake sequence and sends it to a vulnerable OpenSSL DTLS endpoint, causing the server or client to recurse until it crashes.
How to fix it
Upgrade OpenSSL to 0.9.8za, 1.0.0m, or 1.0.1h (or later releases) on all affected products including Red Hat Enterprise Linux, Fedora, SUSE, openSUSE, and MariaDB distributions; disable DTLS where not required until patches are applied.
How to confirm the fix worked
Verify OpenSSL version strings match or exceed the fixed releases; test DTLS handshake handling with a fuzzer or the original proof-of-concept packet to confirm absence of crash; review package manifests on deployed systems.
Typical attack path
- Scan for exposed DTLS services listening on UDP ports
- Craft and transmit a DTLS ClientHello inside an invalid handshake
- Trigger recursion in dtls1_get_message_fragment leading to stack exhaustion
- Observe client or server crash and loss of service
How to detect it
Review DTLS-related crash logs, core dumps, and application event logs on systems running vulnerable OpenSSL versions; correlate UDP traffic spikes with DTLS ClientHello packets preceding service restarts.
What your security team should do
- Prioritize patching all internet-facing DTLS endpoints within 30 days given high EPSS score
- Inventory all systems using OpenSSL DTLS and schedule upgrades
- Apply network segmentation or UDP filtering to limit exposure of DTLS services
- Monitor for unusual DTLS handshake traffic volume as a temporary control
The record
The dtls1_get_message_fragment function in d1_both.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h allows remote attackers to cause a denial of service (recursion and client crash) via a DTLS hello message in an invalid DTLS handshake.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | openssl | 0 | 1.0.1h-1 |
| Debian:12 | openssl | 0 | 1.0.1h-1 |
| Debian:13 | openssl | 0 | 1.0.1h-1 |
| Debian:6.0 | openssl | 0 | 0.9.8o-4squeeze15 |
| Debian:7 | openssl | 0 | 1.0.1e-2+deb7u10 |
| Mageia:3 | openssl | 0 | 1.0.1e-1.9.mga3 |
| Mageia:4 | openssl | 0 | 1.0.1e-8.6.mga4 |
| Red Hat:enterprise_linux:5::client | openssl | 0 | 0:0.9.8e-27.el5_10.4 |
| Red Hat:enterprise_linux:5::client | openssl-debuginfo | 0 | 0:0.9.8e-27.el5_10.4 |
| Red Hat:enterprise_linux:5::client | openssl-devel | 0 | 0:0.9.8e-27.el5_10.4 |
| Red Hat:enterprise_linux:5::client | openssl-perl | 0 | 0:0.9.8e-27.el5_10.4 |
| Red Hat:enterprise_linux:5::client_workstation | openssl | 0 | 0:0.9.8e-27.el5_10.4 |
| Red Hat:enterprise_linux:5::client_workstation | openssl-debuginfo | 0 | 0:0.9.8e-27.el5_10.4 |
| Red Hat:enterprise_linux:5::client_workstation | openssl-devel | 0 | 0:0.9.8e-27.el5_10.4 |
| Red Hat:enterprise_linux:5::client_workstation | openssl-perl | 0 | 0:0.9.8e-27.el5_10.4 |
| Red Hat:enterprise_linux:5::server | openssl | 0 | 0:0.9.8e-27.el5_10.4 |
| Red Hat:enterprise_linux:5::server | openssl-debuginfo | 0 | 0:0.9.8e-27.el5_10.4 |
| Red Hat:enterprise_linux:5::server | openssl-devel | 0 | 0:0.9.8e-27.el5_10.4 |
| Red Hat:enterprise_linux:5::server | openssl-perl | 0 | 0:0.9.8e-27.el5_10.4 |
| Red Hat:enterprise_linux:6::client | openssl | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::client | openssl-debuginfo | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::client | openssl-devel | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::client | openssl-perl | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::client | openssl-static | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::computenode | openssl | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::computenode | openssl-debuginfo | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::computenode | openssl-devel | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::computenode | openssl-perl | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::computenode | openssl-static | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::server | openssl | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::server | openssl-debuginfo | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::server | openssl-devel | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::server | openssl-perl | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::server | openssl-static | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::workstation | openssl | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::workstation | openssl-debuginfo | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::workstation | openssl-devel | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::workstation | openssl-perl | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:6::workstation | openssl-static | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:enterprise_linux:7::client | openssl | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::client | openssl-debuginfo | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::client | openssl-devel | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::client | openssl-libs | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::client | openssl-perl | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::client | openssl-static | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::computenode | openssl | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::computenode | openssl-debuginfo | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::computenode | openssl-devel | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::computenode | openssl-libs | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::computenode | openssl-perl | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::computenode | openssl-static | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::server | openssl | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::server | openssl-debuginfo | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::server | openssl-devel | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::server | openssl-libs | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::server | openssl-perl | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::server | openssl-static | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::workstation | openssl | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::workstation | openssl-debuginfo | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::workstation | openssl-devel | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::workstation | openssl-libs | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::workstation | openssl-perl | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:enterprise_linux:7::workstation | openssl-static | 0 | 1:1.0.1e-34.el7_0.3 |
| Red Hat:storage:2.1:server:el6 | openssl | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:storage:2.1:server:el6 | openssl-debuginfo | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:storage:2.1:server:el6 | openssl-devel | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:storage:2.1:server:el6 | openssl-perl | 0 | 0:1.0.1e-16.el6_5.14 |
| Red Hat:storage:2.1:server:el6 | openssl-static | 0 | 0:1.0.1e-16.el6_5.14 |
| SUSE:Linux Enterprise Desktop 12 | libqt4 | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Desktop 12 | libqt4-sql-plugins | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Desktop 12 | mariadb | 0 | 10.0.16-15.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libqt4 | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libqt4-sql-plugins | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Server 12 | libqt4 | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Server 12 | libqt4-devel-doc | 0 | 4.8.6-7.3 |
| SUSE:Linux Enterprise Server 12 | libqt4-sql-plugins | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Server 12 | mariadb | 0 | 10.0.16-15.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libqt4 | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libqt4-devel-doc | 0 | 4.8.6-7.3 |
| SUSE:Linux Enterprise Server 12 SP1 | libqt4-sql-plugins | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | libqt4 | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | libqt4-devel-doc | 0 | 4.8.6-7.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | libqt4-sql-plugins | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | mariadb | 0 | 10.0.16-15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libqt4 | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libqt4-devel-doc | 0 | 4.8.6-7.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libqt4-sql-plugins | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | libqt4 | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | libqt4-devel-doc | 0 | 4.8.6-7.3 |
| SUSE:Linux Enterprise Software Development Kit 12 | libqt4-sql-plugins | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | mariadb | 0 | 10.0.16-15.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libqt4 | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libqt4-devel-doc | 0 | 4.8.6-7.3 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libqt4-sql-plugins | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | libqt4 | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | libqt4-sql-plugins | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | mariadb | 0 | 10.0.16-15.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP1 | libqt4 | 0 | 4.8.6-7.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP1 | libqt4-sql-plugins | 0 | 4.8.6-7.1 |
| Ubuntu:14.04:LTS | openssl | 0 | 1.0.1f-1ubuntu2.2 |
| Ubuntu:14.04:LTS | openssl098 | 0 | 0.9.8o-7ubuntu3.2.14.04.1 |
| openSUSE:Tumbleweed | openssl-1_1 | 0 | 1.1.1l-1.2 |
Related vulnerabilities
- CVE-2025-27587 OpenSSL 3.0.0 through 3.3.2 on the PowerPC architecture is vulnerable to a Minerva… Also affects openssl
- CVE-2024-13176 Issue summary: A timing side-channel which could potentially allow recovering the private… Also affects openssl
- CVE-2024-4741 Issue summary: Calling the OpenSSL API function SSL_free_buffers may cause memory to be… Also affects openssl
- CVE-2024-9143 Issue summary: Use of the low-level GF(2^m) elliptic curve APIs with untrusted explicit… Also affects openssl
- CVE-2024-5535 Issue summary: Calling the OpenSSL API function SSL_select_next_proto with an empty… Also affects openssl
- CVE-2024-2511 Issue summary: Some non-default TLS server configurations can cause unbounded memory… Also affects openssl
- CVE-2024-0727 Issue summary: Processing a maliciously formatted PKCS12 file may lead OpenSSL to crash… Also affects openssl
- CVE-2023-5678 Issue summary: Generating excessively long X9.42 DH keys or checking excessively long… Also affects openssl