CVE-2026-54891: Plaintext APPLICATION_DATA injected during TLS handshake delivered to client application post-handshake in ssl
Improper Enforcement of Message Integrity During Transmission in a Communication Channel vulnerability in Erlang/OTP ssl (tlsgenconnection module) allows a network-positioned attacker to inject unauthenticated plaintext that the TLS client application later treats as authenticated server data.
The function tlsgenconnection:handleprotocolrecord/3 rejects APPLICATIONDATA records that arrive in pre-handshake states when the TLS endpoint acts as a server, but does not apply the same check when the endpoint acts as a client. A network-positioned attacker can send plaintext APPLICATIONDATA records to the client during the handshake. The records are buffered and, once the handshake completes successfully, delivered to the application as if they were authenticated post-handshake data. The attacker cannot observe the client's response or steer the connection, so the impact is limited to blind injection of unauthenticated bytes. The injection window is wider for TLS versions prior to TLS 1.3 than for TLS 1.3.
This vulnerability is associated with program file lib/ssl/src/tlsgenconnection.erl.
This issue affects OTP from OTP 17.0 before 29.0.3, 28.5.0.3 and 27.3.4.14 corresponding to ssl from 5.3.4 before 11.7.3, 11.6.0.3 and 11.2.12.10. TLS 1.3 is affected starting with OTP 22.0, when TLS 1.3 support was added.
Other sources
Improper Enforcement of Message Integrity During Transmission in a Communication Channel vulnerability in Erlang/OTP ssl (tlsgenconnection module) allows a network-positioned attacker to inject unauthenticated plaintext that the TLS client application later treats as authenticated server data.
The function tlsgenconnection:handleprotocolrecord/3 rejects APPLICATIONDATA records that arrive in pre-handshake states when the TLS endpoint acts as a server, but does not apply the same check when the endpoint acts as a client. A network-positioned attacker can send plaintext APPLICATIONDATA records to the client during the handshake. The records are buffered and, once the handshake completes successfully, delivered to the application as if they were authenticated post-handshake data. The attacker cannot observe the client's response or steer the connection, so the impact is limited to blind injection of unauthenticated bytes. The injection window is wider for TLS versions prior to TLS 1.3 than for TLS 1.3.
This vulnerability is associated with program file lib/ssl/src/tlsgenconnection.erl.
This issue affects OTP from OTP 17.0 before OTP 29.0.3, OTP 28.5.0.3 and OTP 27.3.4.14, corresponding to ssl from 5.3.4 before 11.7.3, 11.6.0.3 and 11.2.12.10. TLS 1.3 is affected starting with OTP 22.0, when TLS 1.3 support was added.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Erlang/OTP ssl (tls_gen_connection module) / lib/ssl/src/tls_gen_connection.erlto a version that resolves this vulnerability.Fixed in 29.0.3 - Upgrade
Upgrade
Erlang/OTP ssl (tls_gen_connection module) / lib/ssl/src/tls_gen_connection.erlto a version that resolves this vulnerability.Fixed in 28.5.0.3 - Upgrade
Upgrade
Erlang/OTP ssl (tls_gen_connection module) / lib/ssl/src/tls_gen_connection.erlto a version that resolves this vulnerability.Fixed in 27.3.4.14 - Upgrade
Upgrade
Erlang/OTP sslto a version that resolves this vulnerability.Fixed in 11.7.3 - Upgrade
Upgrade
Erlang/OTP sslto a version that resolves this vulnerability.Fixed in 11.6.0.3 - Upgrade
Upgrade
Erlang/OTP sslto a version that resolves this vulnerability.Fixed in 11.2.12.10
Event History
Frequently Asked Questions
What is the severity of CVE-2026-54891?
CVE-2026-54891 has a risk rating of 43, indicating a significant security concern.
How do I fix CVE-2026-54891?
To mitigate CVE-2026-54891, update your Erlang/OTP ssl module to the latest version where the vulnerability has been addressed.
What is the impact of CVE-2026-54891?
CVE-2026-54891 allows an attacker positioned in the network to inject unauthenticated plaintext data that can be mistaken for authenticated data by the TLS client application.
Which software is affected by CVE-2026-54891?
CVE-2026-54891 affects the Erlang/OTP ssl module, specifically the tls_gen_connection module.
When was CVE-2026-54891 published?
CVE-2026-54891 was published on July 2, 2026.