Am I affected?

This record states its affected versions in a form that can't be compared automatically.

8.2 and up affected
11.7.3 not affected
11.6.0.3 not affected
11.2.12.10 not affected
every other version: unaffected

Description

Use of Default Cryptographic Key vulnerability in Erlang/OTP ssl (DTLS server) allows predictable DTLS cookie computation during the startup window, enabling source address verification bypass.

On DTLS server startup, dtls_server_connection:initial_hello/3 initializes previous_cookie_secret to the empty binary (<<>>) instead of a random value. Because HMAC with an empty key is deterministic, anyone who observes the plaintext ClientHello can compute dtls_handshake:cookie(<<>>, IP, Port, Hello) and forge a valid DTLS cookie before the first rotation of the cookie secret. The DTLS cookie (RFC 6347 §4.2.1) is a denial-of-service mitigation that prevents spoofed source IPs from forcing the server to allocate state and perform expensive cryptographic operations; it is not an authentication mechanism. During the window from server startup until the first secret rotation (0 to 15 seconds), an attacker who can observe the plaintext ClientHello can bypass the source address verification, enabling DTLS handshake amplification with spoofed source addresses.

This vulnerability is associated with program file lib/ssl/src/dtls_server_connection.erl and program routine dtls_server_connection:initial_hello/3.

This issue affects OTP from OTP 20.0 before OTP 29.0.3, OTP 28.5.0.3 and OTP 27.3.4.14, corresponding to ssl from 8.2 before 11.7.3, 11.6.0.3 and 11.2.12.10.

Weaknesses & attack patterns

Weakness

CWE-1394 · Use of Default Cryptographic Key in catalog → MITRE ↗

Attack patterns

CAPEC-485 · Signature Spoofing by Key Recreation MITRE ↗

Affected — Erlang / ssl Repository ↗

8.2 and up affected
11.7.3 not affected
11.6.0.3 not affected
11.2.12.10 not affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:erlang:erlang/otp:*:*:*:*:*:*:*:*
modules · source files · routines
modules dtls_server_connection
source files src/dtls_server_connection.erl
routines dtls_server_connection:initial_hello/3

Affected — GitHub / erlang/otp Repository ↗

20.0 and up affected
29.0.3 not affected
28.5.0.3 not affected
27.3.4.14 not affected
e594aad < 888e3bc affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:erlang:erlang/otp:*:*:*:*:*:*:*:*
modules · source files · routines
modules dtls_server_connection
source files lib/ssl/src/dtls_server_connection.erl
routines dtls_server_connection:initial_hello/3

References

Credits

Lukas Backström Finder
Ingela Anderton Andin Remediation developer
Dan Gudmundsson Remediation reviewer

CVSS breakdown

CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
« All CVEs