CVE-2026-26994
Received Received - Intake
TLS 1.3 Downgrade Vulnerability in uTLS ClientHello Implementation

Publication date: 2026-02-20

Last updated on: 2026-02-20

Assigner: GitHub, Inc.

Description
uTLS is a fork of crypto/tls, created to customize ClientHello for fingerprinting resistance while still using it for the handshake. In versions 1.6.7 and below, uTLS did not implement the TLS 1.3 downgrade protection mechanism specified in RFC 8446 Section 4.1.3 when using a uTLS ClientHello spec. This allowed an active network adversary to downgrade TLS 1.3 connections initiated by a uTLS client to a lower TLS version (e.g., TLS 1.2) by modifying the ClientHello message to exclude the SupportedVersions extension, causing the server to respond with a TLS 1.2 ServerHello (along with a downgrade canary in the ServerHello random field). Because uTLS did not check the downgrade canary in the ServerHello random field, clients would accept the downgraded connection without detecting the attack. This attack could also be used by an active network attacker to fingerprint uTLS connections. This issue has been fixed in version 1.7.0.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-02-20
Last Modified
2026-02-20
Generated
2026-05-07
AI Q&A
2026-02-20
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
refraction-networking utls to 1.7.0 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
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.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart