p PatchFirst

CVE-2026-54887

CVE-2026-54887 · DTLS server cookie bypass during startup window due to empty initial cookie secret

This page contains facts from public vulnerability sources. Check the original advisory before updating.

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.

CVSS 6.3 · Medium · EPSS 0.2% · Fix available

Published
Updated

Stack: system

Affected products and versions

  • otp

    Versions
    • ≥ 8.2: Affected; ≥ 11.7.3: Not affected; ≥ 11.6.0.3: Not affected; ≥ 11.2.12.10: Not affected (otp)

    Update to 11.2.12.10

  • otp

    Versions
    • ≥ 20.0: Affected; ≥ 29.0.3: Not affected; ≥ 28.5.0.3: Not affected; ≥ 27.3.4.14: Not affected (otp)
    • ≥ e594aad2f87aab39e99fccf9e021bc94e0bbf7d4, < 888e3bcd72d5406016b9e0de741026bc2a6f114d: Affected (git)

    Update to 27.3.4.14; Update to 888e3bcd72d5406016b9e0de741026bc2a6f114d

  • erlang Debian:12

    Versions
    • 1:25.2.3+dfsg-1
    • 1:25.2.3+dfsg-1+deb12u1
    • 1:25.2.3+dfsg-1+deb12u2
    • 1:25.2.3+dfsg-1+deb12u3
    • 1:25.2.3+dfsg-1+deb12u4
    • 1:25.3.2.10+dfsg-1
    • 1:25.3.2.10+dfsg-2
    • 1:25.3.2.11+dfsg-1
    • 1:25.3.2.12+dfsg-1
    • 1:25.3.2.12+dfsg-2
    • 1:25.3.2.12+dfsg-3
    • 1:25.3.2.8+dfsg-1
    • 1:26.0+dfsg-1
    • 1:26.0.1+dfsg-1
    • 1:26.0.2+dfsg-1
    • 1:26.0~rc2+dfsg-1
    • 1:26.0~rc3+dfsg-1
    • 1:26.1.2+dfsg-1
    • 1:26.2.1+dfsg-1
    • 1:26.2.4+dfsg-1
    • 1:27.0+dfsg-1
    • 1:27.0.1+dfsg-1
    • 1:27.0.1+dfsg-2
    • 1:27.0.1+dfsg-3
    • 1:27.0~rc3+dfsg-1
    • 1:27.0~rc3+dfsg-2
    • 1:27.0~rc3+dfsg-3
    • 1:27.0~rc3+dfsg-4
    • 1:27.1.2+dfsg-1
    • 1:27.2+dfsg-1
    • 1:27.2+dfsg-2
    • 1:27.2+dfsg-3~exp1
    • 1:27.2.1+dfsg-1
    • 1:27.2.1+dfsg-2
    • 1:27.2.2+dfsg-1
    • 1:27.2.3+dfsg-1
    • 1:27.2.4+dfsg-1
    • 1:27.3+dfsg-1
    • 1:27.3.1+dfsg-1
    • 1:27.3.2+dfsg-1
    • 1:27.3.3+dfsg-1
    • 1:27.3.4+dfsg-1
    • 1:27.3.4.1+dfsg-1
    • 1:27.3.4.10+dfsg-1
    • 1:27.3.4.11+dfsg-1
    • 1:27.3.4.11+dfsg-2
    • 1:27.3.4.11+dfsg-3
    • 1:27.3.4.11+dfsg-4
    • 1:27.3.4.11+dfsg-5
    • 1:27.3.4.11+dfsg-6
    • 1:27.3.4.11+dfsg-7
    • 1:27.3.4.12+dfsg-1
    • 1:27.3.4.3+dfsg-1
    • 1:27.3.4.4+dfsg-1
    • 1:27.3.4.6+dfsg-1
    • 1:27.3.4.8+dfsg-1
    • 1:27.3.4.9+dfsg-1
    • 1:28.0+dfsg-1
    • 1:28.0.1+dfsg-1
    • 1:28.0.2+dfsg-1
    • 1:28.0.4+dfsg-1
    • 1:28.1.1+dfsg-1
    • 1:28.2+dfsg-1
    • 1:28.3+dfsg-1
    • 1:28.3.1+dfsg-1
    • 1:29.0+dfsg-1
    • 1:29.0+dfsg-2
    • 1:29.0.1+dfsg-1
    • 1:29.0.2+dfsg-1
    • 1:29.0.3+dfsg-1
    • 1:29.0.4+dfsg-1
    • 1:29.0.6+dfsg-1
    • 1:29.0~rc1+dfsg-1
    • 1:29.0~rc1+dfsg-2
    • 1:29.0~rc2+dfsg-1
    • 1:29.0~rc3+dfsg-1
    • 1:29.0~rc3+dfsg-2
    • 1:29.0~rc3+dfsg-3
    • 1:29.0~rc3+dfsg-4
    • 1:29.1.1+dfsg-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • erlang Debian:13

    Versions
    • 1:27.3.4.1+dfsg-1
    • 1:27.3.4.1+dfsg-1+deb13u1
    • 1:27.3.4.1+dfsg-1+deb13u2
    Affected ranges
    • ECOSYSTEM: < 1:27.3.4.1+dfsg-1+deb13u3

    Update to 1:27.3.4.1+dfsg-1+deb13u3

  • erlang Debian:14

    Versions
    • 1:27.3.4.1+dfsg-1
    • 1:27.3.4.10+dfsg-1
    • 1:27.3.4.11+dfsg-1
    • 1:27.3.4.11+dfsg-2
    • 1:27.3.4.11+dfsg-3
    • 1:27.3.4.11+dfsg-4
    • 1:27.3.4.11+dfsg-5
    • 1:27.3.4.11+dfsg-6
    • 1:27.3.4.11+dfsg-7
    • 1:27.3.4.12+dfsg-1
    • 1:27.3.4.3+dfsg-1
    • 1:27.3.4.4+dfsg-1
    • 1:27.3.4.6+dfsg-1
    • 1:27.3.4.8+dfsg-1
    • 1:27.3.4.9+dfsg-1
    • 1:28.0+dfsg-1
    • 1:28.0.1+dfsg-1
    • 1:28.0.2+dfsg-1
    • 1:28.0.4+dfsg-1
    • 1:28.1.1+dfsg-1
    • 1:28.2+dfsg-1
    • 1:28.3+dfsg-1
    • 1:28.3.1+dfsg-1
    • 1:29.0+dfsg-1
    • 1:29.0+dfsg-2
    • 1:29.0.1+dfsg-1
    • 1:29.0.2+dfsg-1
    • 1:29.0~rc1+dfsg-1
    • 1:29.0~rc1+dfsg-2
    • 1:29.0~rc2+dfsg-1
    • 1:29.0~rc3+dfsg-1
    • 1:29.0~rc3+dfsg-2
    • 1:29.0~rc3+dfsg-3
    • 1:29.0~rc3+dfsg-4
    Affected ranges
    • ECOSYSTEM: < 1:29.0.3+dfsg-1

    Update to 1:29.0.3+dfsg-1

  • erlang Ubuntu:Pro:18.04:LTS

    Versions
    • 1:20.0.4+dfsg-1ubuntu1
    • 1:20.1.2+dfsg-1ubuntu1
    • 1:20.1.3+dfsg-1ubuntu1
    • 1:20.1.4+dfsg-1ubuntu1
    • 1:20.1.5+dfsg-1ubuntu1
    • 1:20.1.6+dfsg-1ubuntu1
    • 1:20.1.7+dfsg-1ubuntu1
    • 1:20.2.1+dfsg-1ubuntu1
    • 1:20.2.2+dfsg-1ubuntu1
    • 1:20.2.2+dfsg-1ubuntu2
    • 1:20.2.2+dfsg-1ubuntu2+esm1
    • 1:20.2.2+dfsg-1ubuntu2+esm2
    • 1:20.2.2+dfsg-1ubuntu2+esm3
    Affected ranges
    • ECOSYSTEM: < 1:20.2.2+dfsg-1ubuntu2+esm4

    Update to 1:20.2.2+dfsg-1ubuntu2+esm4

  • erlang Ubuntu:Pro:20.04:LTS

    Versions
    • 1:22.0.7+dfsg-1build1
    • 1:22.2+dfsg-1
    • 1:22.2.1+dfsg-1
    • 1:22.2.2+dfsg-1
    • 1:22.2.3+dfsg-1
    • 1:22.2.3+dfsg-2
    • 1:22.2.4+dfsg-1
    • 1:22.2.7+dfsg-1
    • 1:22.2.7+dfsg-1ubuntu0.2
    • 1:22.2.7+dfsg-1ubuntu0.3
    • 1:22.2.7+dfsg-1ubuntu0.4
    • 1:22.2.7+dfsg-1ubuntu0.5
    • 1:22.2.7+dfsg-1ubuntu0.5+esm1
    • 1:22.2.7+dfsg-1ubuntu0.5+esm2
    Affected ranges
    • ECOSYSTEM: < 1:22.2.7+dfsg-1ubuntu0.5+esm3

    Update to 1:22.2.7+dfsg-1ubuntu0.5+esm3

  • erlang Ubuntu:22.04:LTS

    Versions
    • 1:23.2.6+dfsg-1build1
    • 1:24.1.1+dfsg-1
    • 1:24.1.4+dfsg-1
    • 1:24.1.5+dfsg-1
    • 1:24.1.5+dfsg-1ubuntu1
    • 1:24.2+dfsg-1
    • 1:24.2.1+dfsg-1
    • 1:24.2.1+dfsg-1ubuntu0.1
    • 1:24.2.1+dfsg-1ubuntu0.2
    • 1:24.2.1+dfsg-1ubuntu0.3
    • 1:24.2.1+dfsg-1ubuntu0.4
    • 1:24.2.1+dfsg-1ubuntu0.5
    • 1:24.2.1+dfsg-1ubuntu0.6
    • 1:24.2.1+dfsg-1ubuntu0.7
    Affected ranges
    • ECOSYSTEM: < 1:24.2.1+dfsg-1ubuntu0.8

    Update to 1:24.2.1+dfsg-1ubuntu0.8

  • erlang Ubuntu:24.04:LTS

    Versions
    • 1:25.2.3+dfsg-1
    • 1:25.3.2.8+dfsg-1
    • 1:25.3.2.8+dfsg-1ubuntu1
    • 1:25.3.2.8+dfsg-1ubuntu3
    • 1:25.3.2.8+dfsg-1ubuntu4
    • 1:25.3.2.8+dfsg-1ubuntu4.1
    • 1:25.3.2.8+dfsg-1ubuntu4.2
    • 1:25.3.2.8+dfsg-1ubuntu4.3
    • 1:25.3.2.8+dfsg-1ubuntu4.4
    • 1:25.3.2.8+dfsg-1ubuntu4.5
    • 1:25.3.2.8+dfsg-1ubuntu4.6
    • 1:25.3.2.8+dfsg-1ubuntu4.7
    Affected ranges
    • ECOSYSTEM: < 1:25.3.2.8+dfsg-1ubuntu4.8

    Update to 1:25.3.2.8+dfsg-1ubuntu4.8

  • erlang Ubuntu:25.10

    Versions
    • 1:27.3+dfsg-1ubuntu1
    • 1:27.3+dfsg-1ubuntu1.1
    • 1:27.3.4.1+dfsg-1
    • 1:27.3.4.1+dfsg-1build1
    • 1:27.3.4.1+dfsg-1ubuntu0.1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • erlang Ubuntu:26.04:LTS

    Versions
    • 1:27.3.4.1+dfsg-1build1
    • 1:27.3.4.3+dfsg-1
    • 1:27.3.4.4+dfsg-1
    • 1:27.3.4.6+dfsg-1
    • 1:27.3.4.6+dfsg-1ubuntu0.1
    Affected ranges
    • ECOSYSTEM: < 1:27.3.4.6+dfsg-1ubuntu0.2

    Update to 1:27.3.4.6+dfsg-1ubuntu0.2

Original sources

Check your server →