CVE-2026-27017
Received Received - Intake
Cipher Suite Mismatch Vulnerability in uTLS GREASE ECH

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. Versions 1.6.0 through 1.8.0 contain a fingerprint mismatch with Chrome when using GREASE ECH, related to cipher suite selection. When Chrome selects the preferred cipher suite in the outer ClientHello and for ECH, it does so consistently based on hardware supportβ€”for example, if it prefers AES for the outer cipher suite, it also uses AES for ECH. However, the Chrome parrot in uTLS hardcodes AES preference for outer cipher suites but selects the ECH cipher suite randomly between AES and ChaCha20. This creates a 50% chance of selecting ChaCha20 for ECH while using AES for the outer cipher suite, a combination impossible in Chrome. This issue only affects GREASE ECH; in real ECH, Chrome selects the first valid cipher suite when AES is preferred, which uTLS handles correctly. This issue has been fixed in version 1.8.1.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-02-20
Last Modified
2026-02-20
Generated
2026-05-27
AI Q&A
2026-02-20
EPSS Evaluated
2026-05-25
NVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
refraction-networking utls From 1.6.0 (inc) to 1.8.1 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-1240 To fulfill the need for a cryptographic primitive, the product implements a cryptographic algorithm using a non-standard, unproven, or disallowed/non-compliant cryptographic implementation.
Attack-Flow Graph
AI Powered Q&A
What immediate steps should I take to mitigate this vulnerability?

[{'type': 'paragraph', 'content': 'The vulnerability has been fixed in uTLS version 1.8.1.'}, {'type': 'paragraph', 'content': "Immediate mitigation involves upgrading the uTLS library to version 1.8.1 or later to ensure the cipher suite selection behavior matches Chrome's and eliminates the fingerprint mismatch."}, {'type': 'paragraph', 'content': 'If upgrading is not immediately possible, consider disabling GREASE ECH usage in uTLS to avoid triggering the vulnerable code path.'}] [1]


Can you explain this vulnerability to me?

[{'type': 'paragraph', 'content': "This vulnerability exists in the uTLS Go package versions 1.6.0 through 1.8.0 and relates to how it handles GREASE ECH (Encrypted ClientHello) in a Chrome 'parrot' implementation."}, {'type': 'paragraph', 'content': 'The issue is a mismatch in cipher suite selection between the outer ClientHello and the ECH ClientHello. Chrome consistently selects cipher suites based on hardware support, so if AES is preferred for the outer ClientHello, AES is also used for ECH.'}, {'type': 'paragraph', 'content': 'However, uTLS hardcodes AES preference for the outer ClientHello but randomly chooses between AES and ChaCha20 for the ECH cipher suite. This creates a 50% chance of selecting ChaCha20 for ECH while AES is used outside, a combination that never occurs in real Chrome.'}, {'type': 'paragraph', 'content': "This discrepancy allows fingerprinting of clients using uTLS because the behavior differs from real Chrome's consistent cipher suite selection."}, {'type': 'paragraph', 'content': 'The vulnerability only affects GREASE ECH and was fixed in version 1.8.1.'}] [1]


How can this vulnerability impact me? :

This vulnerability can impact you by enabling fingerprinting of clients using the affected uTLS versions.

Because the cipher suite selection behavior in uTLS differs from real Chrome, an attacker can distinguish uTLS clients from genuine Chrome clients, potentially reducing anonymity or privacy.

The severity of this issue is rated low.


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 a fingerprint mismatch in the uTLS library's handling of GREASE ECH cipher suite selection, specifically a 50% chance of selecting ChaCha20 for ECH while AES is used for the outer ClientHello cipher suite, which is impossible in real Chrome."}, {'type': 'paragraph', 'content': 'Detection would involve monitoring TLS ClientHello messages for inconsistent cipher suite selections between the outer ClientHello and the ECH ClientHello, particularly looking for cases where AES is used outside but ChaCha20 is selected inside ECH.'}, {'type': 'paragraph', 'content': 'Since this is a subtle fingerprinting issue in TLS handshake behavior, detection might require capturing and analyzing TLS handshake packets with tools like Wireshark or tshark, focusing on GREASE ECH ClientHello messages.'}, {'type': 'list_item', 'content': 'Use tshark or Wireshark to capture TLS ClientHello messages and inspect cipher suites in both outer and ECH ClientHello.'}, {'type': 'list_item', 'content': "Example tshark command to capture TLS handshakes: tshark -i <interface> -Y 'tls.handshake.type == 1' -V"}, {'type': 'list_item', 'content': 'Filter for GREASE ECH ClientHello messages and compare cipher suites between outer and inner ClientHello to identify mismatches.'}] [1]


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