curl supports matching of wildcard patterns when listed as "Subject Alternative Name" in TLS server certificates. curl can be built to use its own name matching function for TLS rather than one provided by a TLS library. This private wildcard matching function would match IDN (International Domain Name) hosts incorrectly and could as a result accept patterns that otherwise should mismatch.
IDN hostnames are converted to puny code before used for certificate
checks. Puny coded names always start with xn--
and should not be allowed to
pattern match, but the wildcard check in curl could still check for x*
,
which would match even though the IDN name most likely contained nothing even
resembling an x
.
{ "CWE": { "id": "CWE-295", "desc": "Improper Certificate Validation" }, "award": { "amount": "480", "currency": "USD" }, "URL": "https://curl.se/docs/CVE-2023-28321.json", "package": "curl", "severity": "Low", "issue": "https://hackerone.com/reports/1950627", "www": "https://curl.se/docs/CVE-2023-28321.html", "last_affected": "8.0.1" }