CVE-2026-26994
TLS 1.3 Downgrade Vulnerability in uTLS ClientHello Implementation
Publication date: 2026-02-20
Last updated on: 2026-02-20
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| refraction-networking | utls | to 1.7.0 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-693 | The product does not use or incorrectly uses a protection mechanism that provides sufficient defense against directed attacks against the product. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
CVE-2026-26994 is a vulnerability in the uTLS library, a fork of crypto/tls designed to customize ClientHello messages for fingerprinting resistance. In versions 1.6.7 and below, uTLS did not implement the TLS 1.3 downgrade protection mechanism as specified in RFC 8446 Section 4.1.3. This flaw allowed an active network attacker to modify the ClientHello message by removing the SupportedVersions extension, causing the server to respond with a lower TLS version (e.g., TLS 1.2) ServerHello that included a downgrade canary in the ServerHello random field. However, uTLS failed to check this downgrade canary, so clients accepted the downgraded connection without detecting the attack. This vulnerability also enabled attackers to fingerprint uTLS connections.
How can this vulnerability impact me? :
This vulnerability allows an active network attacker to forcibly downgrade a TLS 1.3 connection initiated by a uTLS client to a lower, less secure TLS version such as TLS 1.2. This downgrade reduces the security guarantees of the connection, potentially exposing sensitive data to interception or manipulation. Additionally, the vulnerability enables attackers to fingerprint uTLS connections, which could aid in targeted attacks or surveillance.
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
How can this vulnerability be detected on my network or system? Can you suggest some commands?
[{'type': 'paragraph', 'content': 'This vulnerability involves an active network adversary modifying the ClientHello message to exclude the SupportedVersions extension, causing a downgrade from TLS 1.3 to a lower TLS version such as TLS 1.2. Detection on your network can focus on monitoring TLS handshakes for unexpected downgrades from TLS 1.3 to lower versions, especially where the SupportedVersions extension is missing or altered.'}, {'type': 'paragraph', 'content': 'You can detect potential exploitation by capturing and analyzing TLS ClientHello and ServerHello messages using network packet capture tools like Wireshark or tcpdump. Look for TLS connections where the ClientHello lacks the SupportedVersions extension and the ServerHello responds with a TLS 1.2 version along with a downgrade canary in the ServerHello random field.'}, {'type': 'list_item', 'content': "Use tcpdump to capture TLS handshake packets: tcpdump -i <interface> -w capture.pcap 'tcp port 443'"}, {'type': 'list_item', 'content': 'Analyze the capture with Wireshark to inspect ClientHello messages for the SupportedVersions extension and ServerHello messages for downgrade canaries.'}, {'type': 'list_item', 'content': 'Use tshark or custom scripts to filter TLS handshakes missing the SupportedVersions extension or showing TLS version downgrade.'}, {'type': 'paragraph', 'content': 'Note that the vulnerability is specific to uTLS versions 1.6.7 and below, which do not check the downgrade canary. Detection can also involve verifying the uTLS client version in use.'}] [1, 3, 4]
What immediate steps should I take to mitigate this vulnerability?
The primary mitigation step is to upgrade the uTLS library to version 1.7.0 or later, where the TLS 1.3 downgrade protection mechanism has been implemented as specified in RFC 8446 Section 4.1.3.
This update includes checks for the TLS downgrade canary in the ServerHello random field and aborts the handshake if a downgrade attempt is detected, preventing the vulnerability from being exploited.
- Update your dependencies to uTLS version 1.7.0 or newer.
- If immediate upgrade is not possible, consider monitoring network traffic for downgrade attempts as a temporary detection measure.
Additionally, review your TLS client configurations and ensure that they are not using customized ClientHello specifications that omit the SupportedVersions extension.