CVE-2026-89422: critical vulnerability in Erlang OTP
TLS 1.3 client skips server authentication when ServerHello carries an unsolicited pre_shared_key extension
Published
E-mail alert when it lands in KEV, gets a public PoC or its score goes up.
28Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackcvss 9.3epss 0.5%
Key Exchange without Entity Authentication vulnerability in Erlang/OTP ssl allows a peer that answers a TLS 1.3 client connection to impersonate the intended server. A pre_shared_key extension in the ServerHello that the client never offered causes the client to complete the handshake without validating the server's certificate, so ssl:connect returns {ok, Socket} against a peer holding no certificate, no private key and no prior session.
tls_client_connection_1_3:handle_server_hello/2 passes the received extension to tls_gen_connection_1_3:handle_resumption/2, which sets resumption = true on its mere presence without checking that the client offered a PSK. tls_handshake_1_3:get_pre_shared_key/4 meanwhile falls back to the all-zero "no PSK" value and keys the handshake with the ordinary non-PSK schedule, so the attacker's own ephemeral key suffices. The resumption flag then routes maybe_resumption/1 straight to wait_finished, skipping the certificate-handling states, so certificate path validation, verify_fun, hostname verification, partial_chain, CRL checking and OCSP stapling are all bypassed. The default client configuration is affected; clients restricted to TLS 1.2 are not.
This issue affects OTP from OTP 22.2 before OTP 27.3.4.18, OTP 28.5.0.7, and OTP 29.1.1, corresponding to ssl from 9.5 before 11.2.12.13, 11.6.0.6, and 11.7.7.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Affected products
Erlang · OTPRelated CVEs — Erlang OTP
In the same product, most dangerous first.
CVE-2026-66835HIGHhttpd mod_auth directory protection bypassed by a doubled slash in the request pathEPSS 1.0%CVE-2026-69664HIGHhttpd parks a request worker indefinitely on a malformed chunk size sent after the headersEPSS 0.9%CVE-2026-73270HIGHhttpd mod_auth directory protection bypassed by request path casing on case-insensitive filesystemsEPSS 0.9%CVE-2026-70399HIGHhttpd does not enforce the documented default max_clients connection limitEPSS 0.9%CVE-2026-75538HIGHA Signed Length Overflow in Erlang/OTP's inet TCP Driver Overflows the Receive Buffer Into BEAM VM Memory From an Unauthenticated PeerEPSS 0.9%CVE-2026-59250HIGHMegaco flex scanner buffer overflow via oversized property parm nameEPSS 0.8%
References
https://cna.erlef.org/cves/CVE-2026-89422.htmlhttps://github.com/erlang/otp/commit/21b8a1b0ad0adf200682b3854bc50114ab2b8c62https://github.com/erlang/otp/commit/98c66c858113949c4262d26cd7d426c4b09d2b35https://github.com/erlang/otp/commit/afec5156361bb50d3607c7c1a453c19b9149b324https://github.com/erlang/otp/commit/fd1d9d07fc92ec0d59f96dfb66182195882bb7ddhttps://github.com/erlang/otp/security/advisories/GHSA-rgxr-4g4w-j875https://osv.dev/vulnerability/EEF-CVE-2026-89422https://www.erlang.org/doc/system/versions.html#order-of-versions