Skip to content
Heist/ feed
Back to feed
High

URL file scheme drive letter buffer overflow

Type: advisorySources: OSV

When libcurl is given either 1. a file: URL that does not use two slashes following the colon, or 2. is told that file is the default scheme to use for URLs without scheme ... and the given path starts with a drive letter and libcurl is built for Windows or DOS, then libcurl would copy the path with a wrong offset, so that the end of the given path would write beyond the malloc buffer. Up to seven bytes too much.

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

Source evidence

URL file scheme drive letter buffer overflow

core-osv · Original source

Published 14 Jun 2017, 08:00 UTC

When libcurl is given either 1. a file: URL that does not use two slashes following the colon, or 2. is told that file is the default scheme to use for URLs without scheme ... and the given path starts with a drive letter and libcurl is built for Windows or DOS, then libcurl would copy the path with a wrong offset, so that the end of the given path would write beyond the malloc buffer. Up to seven bytes too much.

osv:CURL-CVE-2017-9502
Complete source record
{
  "id": "b900932111d06ed3e64c9b7b1211c3197e9d1f2230c300c77eca59a8c917f868",
  "url": "https://osv.dev/vulnerability/CURL-CVE-2017-9502",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "URL file scheme drive letter buffer overflow",
    "summary": "When libcurl is given either 1. a file: URL that does not use two slashes following the colon, or 2. is told that file is the default scheme to use for URLs without scheme ... and the given path starts with a drive letter and libcurl is built for Windows or DOS, then libcurl would copy the path with a wrong offset, so that the end of the given path would write beyond the malloc buffer. Up to seven bytes too much.",
    "evidence": "osv:CURL-CVE-2017-9502",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CURL-CVE-2017-9502",
      "aliases": [
        "CURL-CVE-2017-9502",
        "CVE-2017-9502"
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "SEMVER",
              "events": [
                {
                  "introduced": "7.53.0"
                },
                {
                  "fixed": "7.54.1"
                }
              ]
            },
            {
              "repo": "https://github.com/curl/curl.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "1d4202ade602dd4f1192c69aed5cc905e7a9b4e2"
                },
                {
                  "fixed": "5d7952f52e410e1d4a8ff1965e5cc6fc1bde86aa"
                }
              ]
            }
          ],
          "versions": [
            "7.54.0",
            "7.53.1",
            "7.53.0",
            "curl-7_54_0",
            "curl-7_53_1",
            "curl-7_53_0"
          ],
          "database_specific": {
            "source": "https://curl.se/docs/CURL-CVE-2017-9502.json",
            "vanir_signatures": [
              {
                "id": "CURL-CVE-2017-9502-bef13ddc",
                "digest": {
                  "length": 7020,
                  "function_hash": "266129347539707844623977793203611249510"
                },
                "source": "https://github.com/curl/curl.git/commit/5d7952f52e410e1d4a8ff1965e5cc6fc1bde86aa",
                "target": {
                  "file": "lib/url.c",
                  "function": "parseurlandfillconn"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CURL-CVE-2017-9502-f733d0fb",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "77019411960562870506154579792395984597",
                    "110563004083793725130863967434318543309",
                    "139645591516437034202164075299295070964",
                    "140512268865760139129849858040521466005",
                    "81883257301821446656064499748974461330",
                    "222988069859926090817973227542319202984",
                    "241945608252580017322982663572325432168",
                    "18420600275651290921761966777926420646",
                    "286345502631307420807368422325559415653",
                    "99510905949824577019248636514160310010",
                    "116318659394780638975780029403642105212",
                    "220690396905256019400298788442968356866"
                  ]
                },
                "source": "https://github.com/curl/curl.git/commit/5d7952f52e410e1d4a8ff1965e5cc6fc1bde86aa",
                "target": {
                  "file": "lib/url.c"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              }
            ],
            "vanir_signatures_modified": "2026-10-25T01:04:57Z"
          }
        }
      ],
      "modified": "2026-10-25T01:04:57.178997910Z",
      "provider": "osv",
      "references": [],
      "provider_metadata": {
        "CWE": {
          "id": "CWE-122",
          "desc": "Heap-based Buffer Overflow"
        },
        "URL": "https://curl.se/docs/CVE-2017-9502.json",
        "www": "https://curl.se/docs/CVE-2017-9502.html",
        "affects": "both",
        "package": "curl",
        "severity": "High",
        "last_affected": "7.54.0"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2017-9502",
        "evidence": "/aliases"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/database_specific/severity"
  },
  "source_id": "core-osv",
  "document_id": 444313,
  "published_at": "2017-06-14T08:00:00+00:00"
}