Skip to content
Heist/ feed
Back to feed
High

embedded zero in cert name

Type: advisorySources: OSV

SSL and TLS Server certificates contain one or more fields with server name or otherwise matching patterns. These strings are stored as content and length within the certificate, and thus there is no particular terminating character. curl's OpenSSL interfacing code did faulty assumptions about those names and patterns being null-terminated, allowing itself to be fooled in case a certificate would get a zero byte embedded into one of the name fields. To illustrate, a name that would show this vulnerability could look like: "example.com\0.haxx.se" This cert is thus made for "haxx.se" but curl would erroneously verify it with no complaints for "example.com". According to a recently published presentation, this kind of zero embedding has been proven to be possible with at least one CA.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2009-2417
Confirmed fixed CVEs
Not specified
Updated in this feed
1 Nov 2026, 09:54 UTC · Revision 1

Source evidence

embedded zero in cert name

core-osv · Original source

Published 12 Aug 2009, 08:00 UTC

SSL and TLS Server certificates contain one or more fields with server name or otherwise matching patterns. These strings are stored as content and length within the certificate, and thus there is no particular terminating character. curl's OpenSSL interfacing code did faulty assumptions about those names and patterns being null-terminated, allowing itself to be fooled in case a certificate would get a zero byte embedded into one of the name fields. To illustrate, a name that would show this vulnerability could look like: "example.com\0.haxx.se" This cert is thus made for "haxx.se" but curl would erroneously verify it with no complaints for "example.com". According to a recently published presentation, this kind of zero embedding has been proven to be possible with at least one CA.

osv:CURL-CVE-2009-2417
Complete source record
{
  "id": "fb2991e494435e6f6cdce2422b1f6e99b1f830c4bd33382cfece132b8a51f2ea",
  "url": "https://osv.dev/vulnerability/CURL-CVE-2009-2417",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "embedded zero in cert name",
    "summary": "SSL and TLS Server certificates contain one or more fields with server name or otherwise matching patterns. These strings are stored as content and length within the certificate, and thus there is no particular terminating character. curl's OpenSSL interfacing code did faulty assumptions about those names and patterns being null-terminated, allowing itself to be fooled in case a certificate would get a zero byte embedded into one of the name fields. To illustrate, a name that would show this vulnerability could look like: \"example.com\\0.haxx.se\" This cert is thus made for \"haxx.se\" but curl would erroneously verify it with no complaints for \"example.com\". According to a recently published presentation, this kind of zero embedding has been proven to be possible with at least one CA.",
    "evidence": "osv:CURL-CVE-2009-2417",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CURL-CVE-2009-2417",
      "aliases": [
        "CURL-CVE-2009-2417",
        "CVE-2009-2417"
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "SEMVER",
              "events": [
                {
                  "introduced": "7.4"
                },
                {
                  "fixed": "7.19.6"
                }
              ]
            }
          ],
          "versions": [
            "7.19.5",
            "7.19.4",
            "7.19.3",
            "7.19.2",
            "7.19.1",
            "7.19.0",
            "7.18.2",
            "7.18.1",
            "7.18.0",
            "7.17.1",
            "7.17.0",
            "7.16.4",
            "7.16.3",
            "7.16.2",
            "7.16.1",
            "7.16.0",
            "7.15.5",
            "7.15.4",
            "7.15.3",
            "7.15.2",
            "7.15.1",
            "7.15.0",
            "7.14.1",
            "7.14.0",
            "7.13.2",
            "7.13.1",
            "7.13.0",
            "7.12.3",
            "7.12.2",
            "7.12.1",
            "7.12.0",
            "7.11.2",
            "7.11.1",
            "7.11.0",
            "7.10.8",
            "7.10.7",
            "7.10.6",
            "7.10.5",
            "7.10.4",
            "7.10.3",
            "7.10.2",
            "7.10.1",
            "7.10",
            "7.9.8",
            "7.9.7",
            "7.9.6",
            "7.9.5",
            "7.9.4",
            "7.9.3",
            "7.9.2",
            "7.9.1",
            "7.9",
            "7.8.1",
            "7.8",
            "7.7.3",
            "7.7.2",
            "7.7.1",
            "7.7",
            "7.6.1",
            "7.6",
            "7.5.2",
            "7.5.1",
            "7.5",
            "7.4.2",
            "7.4.1",
            "7.4"
          ],
          "database_specific": {
            "source": "https://curl.se/docs/CURL-CVE-2009-2417.json"
          }
        }
      ],
      "modified": "2026-10-25T09:30:05.367835055Z",
      "provider": "osv",
      "references": [],
      "provider_metadata": {
        "CWE": {
          "id": "CWE-187",
          "desc": "Partial String Comparison"
        },
        "URL": "https://curl.se/docs/CVE-2009-2417.json",
        "www": "https://curl.se/docs/CVE-2009-2417.html",
        "affects": "both",
        "package": "curl",
        "severity": "High",
        "last_affected": "7.19.5"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2009-2417",
        "evidence": "/aliases"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/database_specific/severity"
  },
  "source_id": "core-osv",
  "document_id": 445232,
  "published_at": "2009-08-12T08:00:00+00:00"
}