Skip to content
Heist/ feed
Back to feed
Medium

Security advisory

Type: advisorySources: OSVCVE: CVE-2017-9502

In curl before 7.54.1 on Windows and DOS, libcurl's default protocol function, which is the logic that allows an application to set which protocol libcurl should attempt to use when given a URL without a scheme part, had a flaw that could lead to it overwriting a heap based memory buffer with seven bytes. If the default protocol is specified to be FILE or a file: URL lacks two slashes, the given "URL" starts with a drive letter, and libcurl is built for Windows or DOS, then libcurl would copy the path 7 bytes off, so that the end of the given path would write beyond the malloc buffer (7 bytes being the length in bytes of the ascii string "file://").

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, 07:42 UTC · Revision 1

Source evidence

CVE-2017-9502

core-osv · Original source

Published 14 Jun 2017, 13:29 UTC

In curl before 7.54.1 on Windows and DOS, libcurl's default protocol function, which is the logic that allows an application to set which protocol libcurl should attempt to use when given a URL without a scheme part, had a flaw that could lead to it overwriting a heap based memory buffer with seven bytes. If the default protocol is specified to be FILE or a file: URL lacks two slashes, the given "URL" starts with a drive letter, and libcurl is built for Windows or DOS, then libcurl would copy the path 7 bytes off, so that the end of the given path would write beyond the malloc buffer (7 bytes being the length in bytes of the ascii string "file://").

osv:CVE-2017-9502
Complete source record
{
  "id": "d01b1dfb8b83ce5ee42663eaa6b8789c85d51f95ee7d39f6814064f6c954479c",
  "url": "https://osv.dev/vulnerability/CVE-2017-9502",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2017-9502",
    "summary": "In curl before 7.54.1 on Windows and DOS, libcurl's default protocol function, which is the logic that allows an application to set which protocol libcurl should attempt to use when given a URL without a scheme part, had a flaw that could lead to it overwriting a heap based memory buffer with seven bytes. If the default protocol is specified to be FILE or a file: URL lacks two slashes, the given \"URL\" starts with a drive letter, and libcurl is built for Windows or DOS, then libcurl would copy the path 7 bytes off, so that the end of the given path would write beyond the malloc buffer (7 bytes being the length in bytes of the ascii string \"file://\").",
    "evidence": "osv:CVE-2017-9502",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2017-9502",
      "aliases": [
        "CURL-CVE-2017-9502",
        "CVE-2017-9502"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/curl/curl",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "d957e2189fdc73cef0ff3d1fb58043d354754449"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:haxx:curl:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "7.54.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "curl-7_54_0",
            "curl-7_53_1",
            "curl-7_53_0",
            "curl-7_52_1",
            "curl-7_52_0",
            "curl-7_51_0",
            "curl-7_50_3",
            "curl-7_50_2",
            "curl-7_50_1",
            "curl-7_50_0",
            "curl-7_49_1",
            "curl-7_49_0",
            "curl-7_48_0",
            "curl-7_47_1",
            "curl-7_47_0",
            "curl-7_46_0",
            "curl-7_45_0",
            "curl-7_44_0",
            "curl-7_43_0",
            "curl-7_42_0",
            "curl-7_41_0",
            "curl-7_40_0",
            "curl-7_39_0",
            "curl-7_38_0",
            "curl-7_37_1",
            "curl-7_37_0",
            "curl-7_36_0",
            "curl-7_35_0",
            "curl-7_34_0",
            "curl-7_33_0",
            "curl-7_32_0",
            "curl-7_31_0",
            "curl-7_30_0",
            "curl-7_29_0",
            "curl-7_28_1",
            "curl-7_28_0",
            "curl-7_27_0",
            "curl-7_26_0",
            "curl-7_25_0",
            "curl-7_23_1",
            "curl-7_23_0",
            "curl-7_22_0",
            "curl-7_21_7",
            "curl-7_21_6",
            "curl-7_21_5",
            "curl-7_21_4",
            "curl-7_21_3",
            "curl-7_21_2",
            "curl-7_21_1",
            "curl-7_21_0",
            "curl-7_20_1",
            "curl-7_20_0",
            "curl-7_19_7",
            "curl-7_19_6",
            "curl-7_19_5",
            "curl-7_19_4",
            "curl-7_19_3",
            "curl-7_19_2",
            "curl-7_19_1",
            "curl-7_19_0",
            "curl-7_18_2",
            "curl-7_18_1",
            "curl-7_18_0",
            "curl-7_17_1",
            "curl-7_17_0",
            "curl-7_17_0-preldapfix",
            "curl-7_16_4",
            "curl-7_16_3",
            "curl-7_16_2",
            "curl-7_16_1",
            "curl-7_16_0",
            "curl-7_15_6-prepipeline",
            "curl-7_15_5",
            "curl-7_15_4",
            "curl-7_15_3",
            "curl-7_15_2",
            "curl-7_15_1",
            "curl-7_15_0",
            "curl-7_14_1",
            "curl-7_14_0",
            "curl-7_13_2",
            "curl-7_13_1",
            "before_ftp_statemachine",
            "curl-7_13_0",
            "curl-7_12_3",
            "curl-7_12_2",
            "curl-7_12_1",
            "curl-7_12_0",
            "curl-7_11_2",
            "curl-7_11_1",
            "curl-7_11_0",
            "curl-7_10_8",
            "curl-7_10_7",
            "curl-7_10_6",
            "curl-7_10_5",
            "curl-7_10_4",
            "curl-7_10_3",
            "curl-7_10_2",
            "curl-7_10_1",
            "curl-7_10",
            "curl-7_9_8",
            "curl-7_9_7",
            "curl-7_9_7-pre2",
            "curl-7_9_6",
            "curl-7_9_5",
            "curl-7_9_5-pre4",
            "curl-7_9_5-pre2",
            "curl-7_9_4",
            "curl-7_9_3",
            "curl-7_9_3-pre3",
            "curl-7_9_3-pre2",
            "curl-7_9_3-pre1",
            "curl-7_9_2",
            "curl-7_9_1",
            "curl-7_9",
            "before_urldata_rename",
            "curl-7_8_1",
            "curl-7_8_1-pre3",
            "curl-7_8",
            "curl-7_8-pre2",
            "curl-7_7_3",
            "curl-7_7_2",
            "curl-7_7_1",
            "curl-7_7",
            "curl-7_7-beta5",
            "curl-7_7-beta3",
            "curl-7_7-beta2",
            "curl-7_7-beta1",
            "curl-7_7_alpha2",
            "curl-7_6_1",
            "curl-7_6_1-pre3",
            "curl-7_6_1-pre2",
            "curl-7_6_1-pre1",
            "curl-7_6",
            "curl-7_6-pre4",
            "curl_7_6-pre3",
            "curl-7_5_2",
            "curl-7_5",
            "curl-7_4_1",
            "curl-7_3",
            "curl-7_2",
            "curl-7_1_1",
            "curl-6_5_2",
            "curl-6_5_1",
            "curl-6_5"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2017-9502.json"
          }
        }
      ],
      "modified": "2026-10-24T10:30:57.144897556Z",
      "provider": "osv",
      "references": [
        "https://curl.haxx.se/docs/adv_20170614.html"
      ],
      "provider_metadata": {}
    },
    "related_cves": [
      {
        "value": "CVE-2017-9502",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 438797,
  "published_at": "2017-06-14T13:29:00.747+00:00"
}