Skip to content
Heist/ feed
Back to feed
Low

TFTP receive buffer overflow

Type: advisorySources: OSV

libcurl contains a heap buffer overflow in the function (`tftp_receive_packet()`) that receives data from a TFTP server. It calls `recvfrom()` with the default size for the buffer rather than with the size that was used to allocate it. Thus, the content that might overwrite the heap memory is entirely controlled by the server. The flaw exists if the user selects to use a `blksize` of 504 or smaller (default is 512). The smaller size that is used, the larger the possible overflow becomes. Users choosing a smaller size than default should be rare as the primary use case for changing the size is to make it larger. It is rare for users to use TFTP across the Internet. It is most commonly used within local networks.

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

Source evidence

TFTP receive buffer overflow

core-osv · Original source

Published 22 May 2019, 08:00 UTC

libcurl contains a heap buffer overflow in the function (`tftp_receive_packet()`) that receives data from a TFTP server. It calls `recvfrom()` with the default size for the buffer rather than with the size that was used to allocate it. Thus, the content that might overwrite the heap memory is entirely controlled by the server. The flaw exists if the user selects to use a `blksize` of 504 or smaller (default is 512). The smaller size that is used, the larger the possible overflow becomes. Users choosing a smaller size than default should be rare as the primary use case for changing the size is to make it larger. It is rare for users to use TFTP across the Internet. It is most commonly used within local networks.

osv:CURL-CVE-2019-5436
Complete source record
{
  "id": "6ba95113d5d1f37e2e634c0e9de6e52dcba9553a4390170ca2a31f1878743309",
  "url": "https://osv.dev/vulnerability/CURL-CVE-2019-5436",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "TFTP receive buffer overflow",
    "summary": "libcurl contains a heap buffer overflow in the function (`tftp_receive_packet()`) that receives data from a TFTP server. It calls `recvfrom()` with the default size for the buffer rather than with the size that was used to allocate it. Thus, the content that might overwrite the heap memory is entirely controlled by the server. The flaw exists if the user selects to use a `blksize` of 504 or smaller (default is 512). The smaller size that is used, the larger the possible overflow becomes. Users choosing a smaller size than default should be rare as the primary use case for changing the size is to make it larger. It is rare for users to use TFTP across the Internet. It is most commonly used within local networks.",
    "evidence": "osv:CURL-CVE-2019-5436",
    "products": [],
    "severity": "low",
    "structured": {
      "id": "CURL-CVE-2019-5436",
      "aliases": [
        "CURL-CVE-2019-5436",
        "CVE-2019-5436"
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "SEMVER",
              "events": [
                {
                  "introduced": "7.19.4"
                },
                {
                  "fixed": "7.65.0"
                }
              ]
            },
            {
              "repo": "https://github.com/curl/curl.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0516ce7786e9500c2e447d48aa9b3f24a6ca70f9"
                },
                {
                  "fixed": "2576003415625d7b5f0e390902f8097830b82275"
                }
              ]
            }
          ],
          "versions": [
            "7.64.1",
            "7.64.0",
            "7.63.0",
            "7.62.0",
            "7.61.1",
            "7.61.0",
            "7.60.0",
            "7.59.0",
            "7.58.0",
            "7.57.0",
            "7.56.1",
            "7.56.0",
            "7.55.1",
            "7.55.0",
            "7.54.1",
            "7.54.0",
            "7.53.1",
            "7.53.0",
            "7.52.1",
            "7.52.0",
            "7.51.0",
            "7.50.3",
            "7.50.2",
            "7.50.1",
            "7.50.0",
            "7.49.1",
            "7.49.0",
            "7.48.0",
            "7.47.1",
            "7.47.0",
            "7.46.0",
            "7.45.0",
            "7.44.0",
            "7.43.0",
            "7.42.1",
            "7.42.0",
            "7.41.0",
            "7.40.0",
            "7.39.0",
            "7.38.0",
            "7.37.1",
            "7.37.0",
            "7.36.0",
            "7.35.0",
            "7.34.0",
            "7.33.0",
            "7.32.0",
            "7.31.0",
            "7.30.0",
            "7.29.0",
            "7.28.1",
            "7.28.0",
            "7.27.0",
            "7.26.0",
            "7.25.0",
            "7.24.0",
            "7.23.1",
            "7.23.0",
            "7.22.0",
            "7.21.7",
            "7.21.6",
            "7.21.5",
            "7.21.4",
            "7.21.3",
            "7.21.2",
            "7.21.1",
            "7.21.0",
            "7.20.1",
            "7.20.0",
            "7.19.7",
            "7.19.6",
            "7.19.5",
            "7.19.4",
            "curl-7_64_1",
            "curl-7_64_0",
            "curl-7_63_0",
            "curl-7_62_0",
            "curl-7_61_1",
            "curl-7_61_0",
            "curl-7_60_0",
            "curl-7_59_0",
            "curl-7_58_0",
            "curl-7_57_0",
            "curl-7_56_1",
            "curl-7_56_0",
            "curl-7_55_1",
            "curl-7_55_0",
            "curl-7_54_1",
            "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_1",
            "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_24_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"
          ],
          "database_specific": {
            "source": "https://curl.se/docs/CURL-CVE-2019-5436.json",
            "vanir_signatures": [
              {
                "id": "CURL-CVE-2019-5436-5e7bc270",
                "digest": {
                  "length": 1476,
                  "function_hash": "68387256152682745064219710432356406157"
                },
                "source": "https://github.com/curl/curl.git/commit/2576003415625d7b5f0e390902f8097830b82275",
                "target": {
                  "file": "lib/tftp.c",
                  "function": "tftp_connect"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CURL-CVE-2019-5436-a7dd1ef4",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "229143987650408811552229968059976373129",
                    "86149327857910721299193040869452586776",
                    "240915790023549134045664230468635773657",
                    "192072248737962367579359625305745306650"
                  ]
                },
                "source": "https://github.com/curl/curl.git/commit/2576003415625d7b5f0e390902f8097830b82275",
                "target": {
                  "file": "lib/tftp.c"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              }
            ],
            "vanir_signatures_modified": "2026-10-25T01:05:09Z"
          }
        }
      ],
      "modified": "2026-10-25T01:05:09.025357537Z",
      "provider": "osv",
      "references": [],
      "provider_metadata": {
        "CWE": {
          "id": "CWE-122",
          "desc": "Heap-based Buffer Overflow"
        },
        "URL": "https://curl.se/docs/CVE-2019-5436.json",
        "www": "https://curl.se/docs/CVE-2019-5436.html",
        "award": {
          "amount": "200",
          "currency": "USD"
        },
        "issue": "https://hackerone.com/reports/550696",
        "affects": "both",
        "package": "curl",
        "severity": "Low",
        "last_affected": "7.64.1"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2019-5436",
        "evidence": "/aliases"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/database_specific/severity"
  },
  "source_id": "core-osv",
  "document_id": 444339,
  "published_at": "2019-05-22T08:00:00+00:00"
}