Skip to content
Heist/ feed
Back to feed
High

URL Buffer Overflow

Type: advisorySources: OSV

libcurl's URL parser function can overflow a heap based buffer in two ways, if given a too long URL. These overflows happen if you 1 - pass in a URL with no protocol (like "http://") prefix, using no slash and the string is 256 bytes or longer. This leads to a single zero byte overflow of the heap buffer. 2 - pass in a URL with only a question mark as separator (no slash) between the host and the query part of the URL. This leads to a single zero byte overflow of the heap buffer. Both overflows can be made with the same input string, leading to two single zero byte overwrites. The affected flaw cannot be triggered by a redirect, but the long URL must be passed in "directly" to libcurl. It makes this a "local" problem. Of course, lots of programs may still pass in user-provided URLs to libcurl without doing much syntax checking of their own, allowing a user to exploit this vulnerability.

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

Source evidence

URL Buffer Overflow

core-osv · Original source

Published 7 Dec 2005, 08:00 UTC

libcurl's URL parser function can overflow a heap based buffer in two ways, if given a too long URL. These overflows happen if you 1 - pass in a URL with no protocol (like "http://") prefix, using no slash and the string is 256 bytes or longer. This leads to a single zero byte overflow of the heap buffer. 2 - pass in a URL with only a question mark as separator (no slash) between the host and the query part of the URL. This leads to a single zero byte overflow of the heap buffer. Both overflows can be made with the same input string, leading to two single zero byte overwrites. The affected flaw cannot be triggered by a redirect, but the long URL must be passed in "directly" to libcurl. It makes this a "local" problem. Of course, lots of programs may still pass in user-provided URLs to libcurl without doing much syntax checking of their own, allowing a user to exploit this vulnerability.

osv:CURL-CVE-2005-4077
Complete source record
{
  "id": "8661f08248fda40f370bb2ea869951beda4d74036c6329f9ab06a7966e4675eb",
  "url": "https://osv.dev/vulnerability/CURL-CVE-2005-4077",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "URL Buffer Overflow",
    "summary": "libcurl's URL parser function can overflow a heap based buffer in two ways, if given a too long URL. These overflows happen if you 1 - pass in a URL with no protocol (like \"http://\") prefix, using no slash and the string is 256 bytes or longer. This leads to a single zero byte overflow of the heap buffer. 2 - pass in a URL with only a question mark as separator (no slash) between the host and the query part of the URL. This leads to a single zero byte overflow of the heap buffer. Both overflows can be made with the same input string, leading to two single zero byte overwrites. The affected flaw cannot be triggered by a redirect, but the long URL must be passed in \"directly\" to libcurl. It makes this a \"local\" problem. Of course, lots of programs may still pass in user-provided URLs to libcurl without doing much syntax checking of their own, allowing a user to exploit this vulnerability.",
    "evidence": "osv:CURL-CVE-2005-4077",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CURL-CVE-2005-4077",
      "aliases": [
        "CURL-CVE-2005-4077",
        "CVE-2005-4077"
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "SEMVER",
              "events": [
                {
                  "introduced": "7.11.2"
                },
                {
                  "fixed": "7.15.1"
                }
              ]
            }
          ],
          "versions": [
            "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"
          ],
          "database_specific": {
            "source": "https://curl.se/docs/CURL-CVE-2005-4077.json"
          }
        }
      ],
      "modified": "2026-10-24T23:17:46Z",
      "provider": "osv",
      "references": [],
      "provider_metadata": {
        "CWE": {
          "id": "CWE-122",
          "desc": "Heap-based Buffer Overflow"
        },
        "URL": "https://curl.se/docs/CVE-2005-4077.json",
        "www": "https://curl.se/docs/CVE-2005-4077.html",
        "affects": "both",
        "package": "curl",
        "severity": "High",
        "last_affected": "7.15.0"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2005-4077",
        "evidence": "/aliases"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/database_specific/severity"
  },
  "source_id": "core-osv",
  "document_id": 444186,
  "published_at": "2005-12-07T08:00:00+00:00"
}