← Back to CVE Explorer

CVE-2026-70667

Full vulnerability record from the local CVENow database.

Description

Lemur manages TLS certificate creation. Prior to 1.9.3, _validate_revocation_url in lemur/certificates/verify.py checked the original CRL or OCSP URL but the later request could reach a different destination. The CRL requests.get call followed HTTP redirects without validating each Location target, so a public attacker-controlled URL could redirect to loopback, RFC1918, link-local, or instance-metadata addresses. Validation and connection also performed separate DNS resolutions, creating a time-of-check time-of-use window for DNS rebinding on both CRL and OCSP paths. An operator uploading a certificate through POST /api/1/certificates/upload could therefore induce blind internal requests despite the earlier mitigation. The fix disables redirects and pins validated addresses while preserving the correct Host value. This issue is fixed in version 1.9.3.

Severity
MEDIUM
CVSS score
6.3 (v3.1)
Vulnerability status
Deferred
Source identifier
Published
2026-08-18 19:17:03.293000
Last modified
2026-10-22 22:10:00.250000
View original CVE JSON
{
  "id": "CVE-2026-70667",
  "sourceIdentifier": "[email protected]",
  "published": "2026-08-18T19:17:03.293",
  "lastModified": "2026-10-22T22:10:00.250",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Lemur manages TLS certificate creation. Prior to 1.9.3, _validate_revocation_url in lemur/certificates/verify.py checked the original CRL or OCSP URL but the later request could reach a different destination. The CRL requests.get call followed HTTP redirects without validating each Location target, so a public attacker-controlled URL could redirect to loopback, RFC1918, link-local, or instance-metadata addresses. Validation and connection also performed separate DNS resolutions, creating a time-of-check time-of-use window for DNS rebinding on both CRL and OCSP paths. An operator uploading a certificate through POST /api/1/certificates/upload could therefore induce blind internal requests despite the earlier mitigation. The fix disables redirects and pins validated addresses while preserving the correct Host value. This issue is fixed in version 1.9.3."
    },
    {
      "lang": "es",
      "value": "Lemur gestiona la creación de certificados TLS. Antes de la versión 1.9.3, _validate_revocation_url en lemur/certificates/verify.py verificaba la URL original de CRL u OCSP, pero la solicitud posterior podría alcanzar un destino diferente. La llamada requests.get de CRL seguía redirecciones HTTP sin validar cada objetivo de Location, por lo que una URL pública controlada por un atacante podría redirigir a direcciones de loopback, RFC1918, link-local o de metadatos de instancia. La validación y la conexión también realizaban resoluciones DNS separadas, creando una ventana de tiempo de verificación y tiempo de uso para el DNS rebinding en ambas rutas CRL y OCSP. Un operador que subía un certificado a través de POST /api/1/certificates/upload podría, por lo tanto, inducir solicitudes internas ciegas a pesar de la mitigación anterior. La solución deshabilita las redirecciones y fija direcciones validadas mientras preserva el valor correcto de Host. Este problema está solucionado en la versión 1.9.3."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "Netflix",
          "product": "lemur",
          "versions": [
            {
              "version": "< 1.9.3",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L",
          "baseScore": 6.3,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "LOW",
          "integrityImpact": "LOW",
          "availabilityImpact": "LOW"
        },
        "exploitabilityScore": 2.8,
        "impactScore": 3.4
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-08-19T15:16:23.054190Z",
          "id": "CVE-2026-70667",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-367"
        },
        {
          "lang": "en",
          "value": "CWE-918"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/Netflix/lemur/commit/ed504a830f38a83825b1570302e9f38d6553938a",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/Netflix/lemur/releases/tag/v1.9.3",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/Netflix/lemur/security/advisories/GHSA-f3qq-49m6-rw8f",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/Netflix/lemur/security/advisories/GHSA-54vg-pfh7-jq95",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
    }
  ]
}