{
  "affected": [
    {
      "ranges": [
        {
          "database_specific": {
            "extracted_events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "1.8.6"
              },
              {
                "introduced": "1.9.0"
              },
              {
                "fixed": "1.9.5"
              }
            ],
            "source": [
              "AFFECTED_FIELD",
              "REFERENCES"
            ]
          },
          "events": [
            {
              "introduced": "0"
            },
            {
              "introduced": "338e6fb681369ff0537719095e22ce9dc602dbf0"
            },
            {
              "fixed": "5853918c4c6a7b12f8becf4bd11ff4362ebb9020"
            },
            {
              "fixed": "f7a4071c766ceea3915415e22134cbe3e581c420"
            },
            {
              "fixed": "2c0ce8c0132ac38ab0db28239462a671e2e5440e"
            },
            {
              "fixed": "affda60c10fcef16723451c0d7dc71b71dc20ad3"
            },
            {
              "fixed": "d7a9fb87f504434e9f45228678953c4fa56e7640"
            }
          ],
          "repo": "https://github.com/libgit2/libgit2",
          "type": "GIT"
        }
      ]
    }
  ],
  "aliases": [
    "GHSA-pm24-4jhq-3xvm"
  ],
  "database_specific": {
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
      "CWE-125",
      "CWE-126",
      "CWE-1284",
      "CWE-20"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53587.json"
  },
  "details": "libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Prior to 1.8.6 and 1.9.5, libgit2 performs a fixed-size strncmp in set_data in src/libgit2/transports/smart_pkt.c without first verifying that the smart-protocol pkt-line capability buffer contains 14 bytes. A malicious Git server can make bytes after the pkt-line complete object-format=, causing format_str to advance beyond the pkt-line and the following memchr length calculation to underflow. The resulting heap out-of-bounds walk can crash a client during the first refs-advertisement packet over HTTP, HTTPS, SSH, or the Git protocol. This issue is fixed in versions 1.8.6 and 1.9.5.",
  "id": "CVE-2026-53587",
  "modified": "2026-09-11T03:30:46.143172552Z",
  "published": "2026-08-20T18:36:43.055Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/libgit2/libgit2/releases/tag/v1.8.6"
    },
    {
      "type": "WEB",
      "url": "https://github.com/libgit2/libgit2/releases/tag/v1.9.5"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53587.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/libgit2/libgit2/security/advisories/GHSA-pm24-4jhq-3xvm"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-53587"
    },
    {
      "type": "FIX",
      "url": "https://github.com/libgit2/libgit2/commit/2c0ce8c0132ac38ab0db28239462a671e2e5440e"
    },
    {
      "type": "FIX",
      "url": "https://github.com/libgit2/libgit2/commit/affda60c10fcef16723451c0d7dc71b71dc20ad3"
    },
    {
      "type": "FIX",
      "url": "https://github.com/libgit2/libgit2/commit/d7a9fb87f504434e9f45228678953c4fa56e7640"
    }
  ],
  "schema_version": "1.9.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "libgit2 - Unauthenticated network-reachable heap out-of-bounds read in transports/smart_pkt.c:set_data"
}