Horizon Alert
Summary of the vulnerability and why it matters
The `erlang_quic` and HTTP/3 client libraries contained a critical flaw where they did not properly authenticate servers during the TLS handshake. This allowed attackers to impersonate any server, potentially compromising the confidentiality and integrity of network connections. The issue is resolved in version 1.4.4.
- Issue: Client did not verify server identity.
- Why remember: Protects connection confidentiality and integrity.
- Takeaway: Ensure server authentication is enforced.
Attack Path
How an attacker could exploit the issue
An attacker on the network path could impersonate any server to a vulnerable client, intercepting all traffic and potentially altering it. This is possible because the QUIC and HTTP/3 client improperly handles TLS 1.3 handshakes, failing to verify the server's presented certificate. This allows an attacker to establish a connection with the client, posing as a legitimate server, and compromise the confidentiality and integrity of the communication.
- Network access needed.
- Client TLS handshake does not verify server.
- Confidentiality and integrity at risk.
Live Threat
Current exploitation, exposure, and threat context
The QUIC client in erlang_quic, prior to version 1.4.4, failed to authenticate servers during the TLS 1.3 handshake. This allowed a network attacker to impersonate any server, compromising the confidentiality and integrity of the connection, unless the connection was authenticated by a pre-shared key (PSK).
- Connection confidentiality and integrity.
- Man-in-the-middle can impersonate servers.
- Compromised connection data.
Operational Fix
Recommended remediation, mitigation, and detection steps
To address this vulnerability, the teams responsible for applications utilizing the erlang_quic library for QUIC and HTTP/3 connections should take the lead. The first practical step is to identify all instances where this library is employed, determine if these connections are business-critical, and then confirm the specific application or service owner accountable for its management. Planning remediation efforts should then be based on the identified risk and ownership.
- Application owners should manage this issue.
- Verify client implementation reachability and criticality.
- Plan and coordinate remediation actions.