← Back to CVE Explorer

CVE-2026-53586

Full vulnerability record from the local CVENow database.

Description

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, the built-in HTTP transport in src/libgit2/transports/http.c follows an offsite initial redirect, and handle_remote_auth and handle_auth pass transport->owner->url instead of transport->server.url to the credential callback when the redirected host returns 401 Unauthorized. A callback that scopes credentials to the original trusted URL can therefore return GIT_CREDENTIAL_USERPASS_PLAINTEXT credentials that libgit2 stores in transport->server.cred and sends as an Authorization header to the redirected host. An attacker who controls a trusted Git host or an open redirect on that host can disclose HTTP Basic credentials, personal access tokens, or equivalent credentials. This issue is fixed in versions 1.8.6 and 1.9.5.

Severity
MEDIUM
CVSS score
6.5 (v3.1)
Vulnerability status
Awaiting Analysis
Source identifier
Published
2026-08-20 19:16:54.983000
Last modified
2026-10-26 10:10:00.140000
View original CVE JSON
{
  "id": "CVE-2026-53586",
  "sourceIdentifier": "[email protected]",
  "published": "2026-08-20T19:16:54.983",
  "lastModified": "2026-10-26T10:10:00.140",
  "vulnStatus": "Awaiting Analysis",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "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, the built-in HTTP transport in src/libgit2/transports/http.c follows an offsite initial redirect, and handle_remote_auth and handle_auth pass transport->owner->url instead of transport->server.url to the credential callback when the redirected host returns 401 Unauthorized. A callback that scopes credentials to the original trusted URL can therefore return GIT_CREDENTIAL_USERPASS_PLAINTEXT credentials that libgit2 stores in transport->server.cred and sends as an Authorization header to the redirected host. An attacker who controls a trusted Git host or an open redirect on that host can disclose HTTP Basic credentials, personal access tokens, or equivalent credentials. This issue is fixed in versions 1.8.6 and 1.9.5."
    },
    {
      "lang": "es",
      "value": "libgit2 es una implementación portátil en C de los métodos centrales de Git proporcionada como una biblioteca enlazable con una API sólida, lo que permite integrar la funcionalidad de Git en su aplicación. Antes de las versiones 1.8.6 y 1.9.5, el transporte HTTP integrado en src/libgit2/transports/http.c sigue una redirección inicial externa, y handle_remote_auth y handle_auth pasan transport  ->  owner  ->  url en lugar de transport  ->  server.url a la función de devolución de llamada de credenciales cuando el host redirigido devuelve 401 Unauthorized. Una función de devolución de llamada que limita el alcance de las credenciales a la URL original de confianza puede, por lo tanto, devolver credenciales GIT_CREDENTIAL_USERPASS_PLAINTEXT que libgit2 almacena en transport  ->  server.cred y envía como una cabecera de autorización al host redirigido. Un atacante que controla un host Git de confianza o una redirección abierta en ese host puede divulgar credenciales HTTP Basic, tokens de acceso personal, o credenciales equivalentes. Este problema se corrige en las versiones 1.8.6 y 1.9.5."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "libgit2",
          "product": "libgit2",
          "versions": [
            {
              "version": "< 1.8.6",
              "status": "affected"
            },
            {
              "version": ">= 1.9.0, < 1.9.5",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N",
          "baseScore": 6.5,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "NONE",
          "userInteraction": "REQUIRED",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "NONE",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 2.8,
        "impactScore": 3.6
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-08-21T20:58:39.443105Z",
          "id": "CVE-2026-53586",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-200"
        },
        {
          "lang": "en",
          "value": "CWE-522"
        },
        {
          "lang": "en",
          "value": "CWE-601"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/libgit2/libgit2/commit/07de6a7e438f95ac9a6efd3222a82117e871ed27",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/libgit2/libgit2/commit/af2b29ad0a74d5bac9751376879ddaf848136d3b",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/libgit2/libgit2/commit/c1507abc44647b3acd832a33a5b1c8c9f5ba8821",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/libgit2/libgit2/releases/tag/v1.8.6",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/libgit2/libgit2/releases/tag/v1.9.5",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/libgit2/libgit2/security/advisories/GHSA-2889-x8f6-mc4x",
      "source": "[email protected]"
    }
  ]
}