CVE-2026-26994 (GCVE-0-2026-26994)
Vulnerability from cvelistv5 – Published: 2026-02-20 02:50 – Updated: 2026-02-20 15:12
VLAI?
Title
uTLS ServerHellos are accepted without checking TLS 1.3 downgrade canaries
Summary
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.
Severity ?
6.5 (Medium)
CWE
- CWE-693 - Protection Mechanism Failure
Assigner
References
| URL | Tags | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| refraction-networking | utls |
Affected:
< 1.7.0
|
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-26994",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-02-20T15:12:10.465682Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-02-20T15:12:28.142Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "utls",
"vendor": "refraction-networking",
"versions": [
{
"status": "affected",
"version": "\u003c 1.7.0"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 6.5,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "LOW",
"integrityImpact": "LOW",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-693",
"description": "CWE-693: Protection Mechanism Failure",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-02-20T02:50:18.439Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/refraction-networking/utls/security/advisories/GHSA-pmc3-p9hx-jq96",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/refraction-networking/utls/security/advisories/GHSA-pmc3-p9hx-jq96"
},
{
"name": "https://github.com/refraction-networking/utls/issues/181",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/refraction-networking/utls/issues/181"
},
{
"name": "https://github.com/refraction-networking/utls/pull/337",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/refraction-networking/utls/pull/337"
},
{
"name": "https://github.com/refraction-networking/utls/commit/f8892761e2a4d29054264651d3a86fda83bc83f9",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/refraction-networking/utls/commit/f8892761e2a4d29054264651d3a86fda83bc83f9"
}
],
"source": {
"advisory": "GHSA-pmc3-p9hx-jq96",
"discovery": "UNKNOWN"
},
"title": "uTLS ServerHellos are accepted without checking TLS 1.3 downgrade canaries"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-26994",
"datePublished": "2026-02-20T02:50:18.439Z",
"dateReserved": "2026-02-17T01:41:24.607Z",
"dateUpdated": "2026-02-20T15:12:28.142Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": "{\"cve\":{\"id\":\"CVE-2026-26994\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2026-02-20T03:16:01.330\",\"lastModified\":\"2026-02-20T19:20:00.740\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"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.\"},{\"lang\":\"es\",\"value\":\"uTLS es una bifurcaci\u00f3n de crypto/tls, creado para personalizar ClientHello con el fin de resistir la identificaci\u00f3n de huellas digitales mientras se sigue utilizando para el protocolo de enlace. En las versiones 1.6.7 y anteriores, uTLS no implement\u00f3 el mecanismo de protecci\u00f3n contra la degradaci\u00f3n de TLS 1.3 especificado en la Secci\u00f3n 4.1.3 de RFC 8446 cuando se utiliza una especificaci\u00f3n de ClientHello de uTLS. Esto permiti\u00f3 a un adversario de red activo degradar las conexiones TLS 1.3 iniciadas por un cliente de uTLS a una versi\u00f3n de TLS inferior (por ejemplo, TLS 1.2) modificando el mensaje ClientHello para excluir la extensi\u00f3n SupportedVersions, haciendo que el servidor responda con un ServerHello de TLS 1.2 (junto con un \u0027canary\u0027 de degradaci\u00f3n en el campo aleatorio de ServerHello). Debido a que uTLS no verific\u00f3 el \u0027canary\u0027 de degradaci\u00f3n en el campo aleatorio de ServerHello, los clientes aceptar\u00edan la conexi\u00f3n degradada sin detectar el ataque. Este ataque tambi\u00e9n podr\u00eda ser utilizado por un atacante de red activo para la huella digital de conexiones uTLS. Este problema ha sido solucionado en la versi\u00f3n 1.7.0.\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N\",\"baseScore\":6.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"LOW\",\"integrityImpact\":\"LOW\",\"availabilityImpact\":\"NONE\"},\"exploitabilityScore\":3.9,\"impactScore\":2.5}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-693\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:refraction-networking:utls:*:*:*:*:*:go:*:*\",\"versionEndExcluding\":\"1.7.0\",\"matchCriteriaId\":\"9F530DA4-D661-48AF-9406-4B86A99C9E64\"}]}]}],\"references\":[{\"url\":\"https://github.com/refraction-networking/utls/commit/f8892761e2a4d29054264651d3a86fda83bc83f9\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Patch\"]},{\"url\":\"https://github.com/refraction-networking/utls/issues/181\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Issue Tracking\"]},{\"url\":\"https://github.com/refraction-networking/utls/pull/337\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Issue Tracking\",\"Patch\"]},{\"url\":\"https://github.com/refraction-networking/utls/security/advisories/GHSA-pmc3-p9hx-jq96\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Patch\",\"Vendor Advisory\"]}]}}",
"vulnrichment": {
"containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-26994\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"yes\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-02-20T15:12:10.465682Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-02-20T15:12:20.379Z\"}}], \"cna\": {\"title\": \"uTLS ServerHellos are accepted without checking TLS 1.3 downgrade canaries\", \"source\": {\"advisory\": \"GHSA-pmc3-p9hx-jq96\", \"discovery\": \"UNKNOWN\"}, \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 6.5, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"MEDIUM\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N\", \"integrityImpact\": \"LOW\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"NONE\", \"privilegesRequired\": \"NONE\", \"confidentialityImpact\": \"LOW\"}}], \"affected\": [{\"vendor\": \"refraction-networking\", \"product\": \"utls\", \"versions\": [{\"status\": \"affected\", \"version\": \"\u003c 1.7.0\"}]}], \"references\": [{\"url\": \"https://github.com/refraction-networking/utls/security/advisories/GHSA-pmc3-p9hx-jq96\", \"name\": \"https://github.com/refraction-networking/utls/security/advisories/GHSA-pmc3-p9hx-jq96\", \"tags\": [\"x_refsource_CONFIRM\"]}, {\"url\": \"https://github.com/refraction-networking/utls/issues/181\", \"name\": \"https://github.com/refraction-networking/utls/issues/181\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/refraction-networking/utls/pull/337\", \"name\": \"https://github.com/refraction-networking/utls/pull/337\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/refraction-networking/utls/commit/f8892761e2a4d29054264651d3a86fda83bc83f9\", \"name\": \"https://github.com/refraction-networking/utls/commit/f8892761e2a4d29054264651d3a86fda83bc83f9\", \"tags\": [\"x_refsource_MISC\"]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"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.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-693\", \"description\": \"CWE-693: Protection Mechanism Failure\"}]}], \"providerMetadata\": {\"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\", \"dateUpdated\": \"2026-02-20T02:50:18.439Z\"}}}",
"cveMetadata": "{\"cveId\": \"CVE-2026-26994\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-02-20T15:12:28.142Z\", \"dateReserved\": \"2026-02-17T01:41:24.607Z\", \"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"datePublished\": \"2026-02-20T02:50:18.439Z\", \"assignerShortName\": \"GitHub_M\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…