CVE-2026-54891: Plaintext APPLICATION_DATA injected during TLS handshake delivered to client application post-handshake in ssl

Published Jul 2, 2026
·
Updated

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

8 affected components
Erlang/OTP ssl (tls_gen_connection module)>17.0<=29.0.3, >=28.5.0.3<=28.5.0.3, >=27.3.4.14<=27.3.4.14
erlang/otp>=0<0
Erlang Erlang\/otp>=17.0<27.3.4.14
Erlang Erlang\/otp>=28.0<28.5.0.3
Erlang Erlang\/otp>=29.0<29.0.3
Erlang Erlang\/ssl>=5.3.4<11.2.12.10
Erlang Erlang\/ssl>=11.3<11.6.0.3
Erlang Erlang\/ssl>=11.7<11.7.3

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Erlang/OTP ssl (tls_gen_connection module) / lib/ssl/src/tls_gen_connection.erl to a version that resolves this vulnerability.

    Fixed in 29.0.3
  2. Upgrade

    Upgrade Erlang/OTP ssl (tls_gen_connection module) / lib/ssl/src/tls_gen_connection.erl to a version that resolves this vulnerability.

    Fixed in 28.5.0.3
  3. Upgrade

    Upgrade Erlang/OTP ssl (tls_gen_connection module) / lib/ssl/src/tls_gen_connection.erl to a version that resolves this vulnerability.

    Fixed in 27.3.4.14
  4. Upgrade

    Upgrade Erlang/OTP ssl to a version that resolves this vulnerability.

    Fixed in 11.7.3
  5. Upgrade

    Upgrade Erlang/OTP ssl to a version that resolves this vulnerability.

    Fixed in 11.6.0.3
  6. Upgrade

    Upgrade Erlang/OTP ssl to a version that resolves this vulnerability.

    Fixed in 11.2.12.10

Event History

Jul 2, 2026
CVE Published
via MITRE·04:06 PM
Data Sourced
via MITRE·04:06 PM
DescriptionWeakness
Data Sourced
via NVD·05:17 PM
RemedyDescriptionSeverityWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-54891?

CVE-2026-54891 has a risk rating of 43, indicating a significant security concern.

2

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.

3

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.

4

Which software is affected by CVE-2026-54891?

CVE-2026-54891 affects the Erlang/OTP ssl module, specifically the tls_gen_connection module.

5

When was CVE-2026-54891 published?

CVE-2026-54891 was published on July 2, 2026.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203