Description
Improper Validation of Certificate with Host Mismatch vulnerability in deadtrickster ssl_verify_fun allows an adversary in the middle to impersonate a TLS peer via a certificate that carries a partial-label wildcard. try_match_wildcard/4 in src/ssl_verify_hostname.erl anchors only the text before and after the * of an identifier such as f*.example.net, so the wildcard also consumes dots and the certificate is accepted for f.evil.example.net. RFC 6125 confines a wildcard to the left-most label. The same matcher lets *.168.1.1 match the IP literal 192.168.1.1. Whole-label wildcards are matched correctly.

Erlang/OTP 20.0 and later check the hostname in ssl before a user verify_fun sees valid_peer, so a client that keeps server_name_indication set rejects the mismatch regardless. Exposed are clients that disable SNI, servers that verify client certificate hostnames with this library, and direct callers of verify_cert_hostname/2.

This issue affects ssl_verify_fun: from 1.0.1 before 1.1.8.
Published: 2026-10-30
Score: 9.1 Critical
EPSS: n/a
KEV: No
Impact: Impersonation of TLS peer via a wildcard certificate that matches across label boundaries
Action: Apply patch
AI Analysis

Impact

The ssl_verify_fun library unauthoritatively allows a certificate that contains a partial‑label wildcard to be considered valid even when the hostname does not match the left‑most label. This flaw permits an adversary to present a certificate such as f*.evil.example.net, which the library will treat as matching f.evil.example.net, thereby enabling a man‑in‑the‑middle to impersonate the intended TLS peer. The vulnerability stems from a mis‑implementation of RFC 6125, falling under CWE‑297, and can be used to subvert confidentiality and authenticity in SSL/TLS sessions.

Affected Systems

The issue affects the deadtrickster ssl_verify_fun package from version 1.0.1 up to but not including 1.1.8. Systems that incorporate this library for client or server peer verification, particularly those that disable Server Name Indication (SNI) or that directly invoke verify_cert_hostname/2, are at risk. OTP releases 20.0 and later perform hostname checks before the user verify_fun runs, mitigating the flaw for clients that keep server_name_indication set to the target hostname.

Risk and Exploitability

The flaw carries a CVSS score of 9.1, classifying it as critical. No EPSS data is available, and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector is a TLS interception scenario or a client that deliberately suppresses SNI, wherein the attacker can supply a crafted wildcard certificate to deceive the ssl_verify_fun verification process. Users who rely on older library versions or who disable SNI face the highest risk. Upgrade or additional configuration is recommended to reduce exposure.

Generated by OpenCVE AI on October 30, 2026 at 21:39 UTC.

Remediation

Vendor Workaround

On Erlang/OTP 21 or later, keep server_name_indication set to the target hostname and pass {customize_hostname_check, [{match_fun, public_key:pkix_verify_hostname_match_fun(https)}]} in the ssl options. The hostname check in ssl then rejects the mismatch before ssl_verify_fun runs, and legitimate wildcard certificates continue to match. hackney and tls_certificate_check already set both options.


OpenCVE Recommended Actions

  • Upgrade to ssl_verify_fun 1.1.8 or newer which fixes the wildcard handling logic.
  • On Erlang/OTP 20.0 or later, keep server_name_indication set to the intended hostname to ensure the built‑in hostname check rejects mismatched certificates before ssl_verify_fun runs.
  • If an upgrade is not immediately possible, add the custom hostname check option {customize_hostname_check, [{match_fun, public_key:pkix_verify_hostname_match_fun(https)}]} to your SSL options so that the hostname is validated before ssl_verify_fun is invoked.

Generated by OpenCVE AI on October 30, 2026 at 21:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 30 Oct 2026 20:30:00 +0000

Type Values Removed Values Added
Description Improper Validation of Certificate with Host Mismatch vulnerability in deadtrickster ssl_verify_fun allows an adversary in the middle to impersonate a TLS peer via a certificate that carries a partial-label wildcard. try_match_wildcard/4 in src/ssl_verify_hostname.erl anchors only the text before and after the * of an identifier such as f*.example.net, so the wildcard also consumes dots and the certificate is accepted for f.evil.example.net. RFC 6125 confines a wildcard to the left-most label. The same matcher lets *.168.1.1 match the IP literal 192.168.1.1. Whole-label wildcards are matched correctly. Erlang/OTP 20.0 and later check the hostname in ssl before a user verify_fun sees valid_peer, so a client that keeps server_name_indication set rejects the mismatch regardless. Exposed are clients that disable SNI, servers that verify client certificate hostnames with this library, and direct callers of verify_cert_hostname/2. This issue affects ssl_verify_fun: from 1.0.1 before 1.1.8.
Title ssl_verify_fun: partial-label wildcard certificate matches hostnames across a label boundary
First Time appeared Deadtrickster
Deadtrickster ssl Verify Fun
Weaknesses CWE-297
CPEs cpe:2.3:a:deadtrickster:ssl_verify_fun:*:*:*:*:*:*:*:*
Vendors & Products Deadtrickster
Deadtrickster ssl Verify Fun
References
Metrics cvssV4_0

{'score': 9.1, 'vector': 'CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Deadtrickster Ssl Verify Fun
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-10-30T20:22:16.466Z

Reserved: 2026-10-30T10:00:01.681Z

Link: CVE-2026-117666

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-30T21:16:51.447

Modified: 2026-10-30T21:16:51.447

Link: CVE-2026-117666

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-30T22:00:12Z

Weaknesses
  • CWE-297

    Improper Validation of Certificate with Host Mismatch