CVE-2022-35409
Critical · 9.1CVSS
9.1
EPSS
2.3%
Published
Jul 15, 2022
CISA due date
—
Cloudanix analysis
A flaw in certain network security software can let remote attackers crash servers or peek at small amounts of internal data by sending one bad message, but only when specific rarely used options are turned on.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap-based buffer over-read of up to 255 bytes in DTLS ClientHello processing when MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE is enabled and MBEDTLS_SSL_IN_CONTENT_LEN is below the configuration threshold, leading to server crash or information disclosure through error responses.
Why it matters to the business
DTLS servers using affected Mbed TLS versions may experience unexpected downtime or leakage of limited memory contents; prevalence in embedded and media processing ecosystems increases exposure surface for services relying on these libraries, though low EPSS and lack of KEV listing indicate limited active exploitation risk 1556 days post-publication.
How an attack unfolds
An unauthenticated attacker sends a specially crafted invalid ClientHello message to a DTLS server configured with client port reuse and undersized input buffers; the malformed message triggers a buffer over-read during cookie validation or content parsing, resulting in a crash or controlled information leakage via crafted error responses. No named threat actors are associated with this issue.
How to fix it
Upgrade armmbed/mbedtls to commit dd79db10014d85b26d11fe57218431f2e5ede6f2 or later (2.28.1+ or 3.2.0+), and gpac to 1.0.1+dfsg1-4+deb11u3 or commit ea7395f39f601a7750d48d606e9d10ea0b7beefe. Disable MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE where feasible until patched.
How to confirm the fix worked
Verify library versions against fixed commits or package releases; confirm MBEDTLS_SSL_IN_CONTENT_LEN meets or exceeds required thresholds after update; perform DTLS handshake tests with malformed ClientHello payloads to ensure no over-read occurs.
Typical attack path
- Identify publicly reachable DTLS endpoints using Mbed TLS with DTLS client port reuse enabled
- Craft and transmit an invalid ClientHello packet sized to trigger over-read under the affected content length limits
- Observe server response for crash indicators or error messages that may disclose heap memory contents
How to detect it
Review DTLS server logs and crash dumps for unexpected terminations or error responses during ClientHello processing; correlate with network captures showing anomalous DTLS handshake packets from untrusted sources.
What your security team should do
- Prioritize patching Mbed TLS and dependent packages (gpac) to the listed fixed versions within standard maintenance windows given low EPSS and absence from KEV
- Audit configurations for MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE and reduce MBEDTLS_SSL_IN_CONTENT_LEN exposure
- Monitor upstream advisories for any changes in exploit maturity
The record
An issue was discovered in Mbed TLS before 2.28.1 and 3.x before 3.2.0. In some configurations, an unauthenticated attacker can send an invalid ClientHello message to a DTLS server that causes a heap-based buffer over-read of up to 255 bytes. This can cause a server crash or possibly information disclosure based on error responses. Affected configurations have MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE enabled and MBEDTLS_SSL_IN_CONTENT_LEN less than a threshold that depends on the configuration: 258 bytes if using mbedtls_ssl_cookie_check, and possibly up to 571 bytes with a custom cookie check function.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.16 | mbedtls | 0 | 2.28.1-r0 |
| Alpine:v3.17 | mbedtls | 0 | 2.28.1-r0 |
| Alpine:v3.18 | mbedtls | 0 | 2.28.1-r0 |
| Alpine:v3.19 | mbedtls | 0 | 2.28.1-r0 |
| Alpine:v3.20 | mbedtls | 0 | 2.28.1-r0 |
| Alpine:v3.21 | mbedtls | 0 | 2.28.1-r0 |
| Alpine:v3.22 | mbedtls | 0 | 2.28.1-r0 |
| Debian:10 | mbedtls | 0 | 2.16.9-0~deb10u1 |
| Debian:11 | mbedtls | 0 | No fix |
| Debian:12 | mbedtls | 0 | 2.28.1-1 |
| Debian:13 | mbedtls | 0 | 2.28.1-1 |
| Debian:14 | mbedtls | 0 | 2.28.1-1 |
| Mageia:8 | mbedtls | 0 | 2.16.12-1.1.mga8 |
| SUSE:Package Hub 15 SP3 | mbedtls | 0 | 2.16.9-bp153.2.8.1 |
| Ubuntu:22.04:LTS | mbedtls | 0 | No fix |
| Ubuntu:24.04:LTS | mbedtls | 0 | No fix |
| Ubuntu:24.10 | mbedtls | 0 | No fix |
| Ubuntu:25.04 | mbedtls | 0 | No fix |
| openSUSE:Leap 15.3 | mbedtls | 0 | 2.16.9-bp153.2.8.1 |
| openSUSE:Tumbleweed | mbedtls-2 | 0 | 2.28.1-1.1 |
| openSUSE:Tumbleweed | mbedtls-3 | 0 | 3.6.6-1.1 |
Related vulnerabilities
- CVE-2024-28960 An issue was discovered in Mbed TLS 2.18.0 through 2.28.x before 2.28.8 and 3.x before… Also affects mbedtls
- CVE-2024-23775 Integer Overflow vulnerability in Mbed TLS 2.x before 2.28.7 and 3.x before 3.5.2, allows… Also affects mbedtls
- CVE-2024-23170 An issue was discovered in Mbed TLS 2.x before 2.28.7 and 3.x before 3.5.2. Also affects mbedtls
- CVE-2023-43615 Mbed TLS 2.x before 2.28.5 and 3.x before 3.5.0 has a Buffer Overflow. Also affects mbedtls
- CVE-2021-44732 Mbed TLS before 3.0.1 has a double free in certain out-of-memory conditions, as… Also affects mbedtls
- CVE-2024-45157 An issue was discovered in Mbed TLS before 2.28.9 and 3.x before 3.6.1, in which the… Also affects mbedtls
- JLSEC-2025-187 Mbed TLS before 2.28.10 and 3.x before 3.6.3, in some cases of failed memory allocation… Also affects mbedtls
- CVE-2024-49195 Mbed TLS 3.5.x through 3.6.x before 3.6.2 has a buffer underrun in pkwrite when writing… Also affects mbedtls