← Back to CVE Explorer

CVE-2026-69249

Full vulnerability record from the local CVENow database.

Description

python-cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. In versions 42.0.0 through 48.0.0, when resolving invalid certificate chains that include duplicate copies of self-signed certificates, the processing recursively invokes the same candidate, leading to an exponential blowup. Although the limitation that the chain depth cannot exceed a specified maximum depth prevents unbounded recursion and guarantees termination, an attacker-controlled certificate chain can lead the processing to easily take more than 5s to reject in testing. This amplification could form the basis for a resource exhaustion denial of service attack. The core issue arises in the recursive nature of build_chain_inner, which does not de-duplicate against previously analyzed candidates. As the correctness of validation is not affected, the integrity of a system cannot be compromised through this vector, only its availability. This issue is fixed in 49.0.0.

Severity
HIGH
CVSS score
8.7 (v4.0)
Vulnerability status
Awaiting Analysis
Source identifier
Published
2026-08-03 22:16:52.720000
Last modified
2026-10-23 21:10:00.157000
View original CVE JSON
{
  "id": "CVE-2026-69249",
  "sourceIdentifier": "[email protected]",
  "published": "2026-08-03T22:16:52.720",
  "lastModified": "2026-10-23T21:10:00.157",
  "vulnStatus": "Awaiting Analysis",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "python-cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. In versions 42.0.0 through 48.0.0, when resolving invalid certificate chains that include duplicate copies of self-signed certificates, the processing recursively invokes the same candidate, leading to an exponential blowup. Although the limitation that the chain depth cannot exceed a specified maximum depth prevents unbounded recursion and guarantees termination, an attacker-controlled certificate chain can lead the processing to easily take more than 5s to reject in testing. This amplification could form the basis for a resource exhaustion denial of service attack. The core issue arises in the recursive nature of build_chain_inner, which does not de-duplicate against previously analyzed candidates. As the correctness of validation is not affected, the integrity of a system cannot be compromised through this vector, only its availability. This issue is fixed in 49.0.0."
    },
    {
      "lang": "es",
      "value": "python-cryptography es un paquete diseñado para exponer primitivas criptográficas y recetas a los desarrolladores de Python. Antes de la versión 49.0.0, al resolver cadenas de certificados no válidas que incluyen copias duplicadas de certificados autofirmados, el procesamiento invoca recursivamente al mismo candidato, lo que lleva a una explosión exponencial. Aunque la limitación de que la profundidad de la cadena no puede exceder una profundidad máxima especificada evita la recursión ilimitada y garantiza la terminación, una cadena de certificados controlada por un atacante puede hacer que el procesamiento tarde fácilmente más de 5 segundos en ser rechazado en las pruebas. Esta amplificación podría sentar las bases para un ataque de denegación de servicio por agotamiento de recursos. El problema principal surge en la naturaleza recursiva de build_chain_inner, que no desduplica contra candidatos analizados previamente. Como la corrección de la validación no se ve afectada, la integridad de un sistema no puede ser comprometida a través de este vector, solo su disponibilidad. Este problema se corrige en la versión 49.0.0."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "pyca",
          "product": "cryptography",
          "versions": [
            {
              "version": ">= 42.0.0, < 49.0.0",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV40": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "4.0",
          "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
          "baseScore": 8.7,
          "baseSeverity": "HIGH",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "attackRequirements": "NONE",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "vulnConfidentialityImpact": "NONE",
          "vulnIntegrityImpact": "NONE",
          "vulnAvailabilityImpact": "HIGH",
          "subConfidentialityImpact": "NONE",
          "subIntegrityImpact": "NONE",
          "subAvailabilityImpact": "NONE",
          "exploitMaturity": "NOT_DEFINED",
          "confidentialityRequirement": "NOT_DEFINED",
          "integrityRequirement": "NOT_DEFINED",
          "availabilityRequirement": "NOT_DEFINED",
          "modifiedAttackVector": "NOT_DEFINED",
          "modifiedAttackComplexity": "NOT_DEFINED",
          "modifiedAttackRequirements": "NOT_DEFINED",
          "modifiedPrivilegesRequired": "NOT_DEFINED",
          "modifiedUserInteraction": "NOT_DEFINED",
          "modifiedVulnConfidentialityImpact": "NOT_DEFINED",
          "modifiedVulnIntegrityImpact": "NOT_DEFINED",
          "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
          "modifiedSubConfidentialityImpact": "NOT_DEFINED",
          "modifiedSubIntegrityImpact": "NOT_DEFINED",
          "modifiedSubAvailabilityImpact": "NOT_DEFINED",
          "Safety": "NOT_DEFINED",
          "Automatable": "NOT_DEFINED",
          "Recovery": "NOT_DEFINED",
          "valueDensity": "NOT_DEFINED",
          "vulnerabilityResponseEffort": "NOT_DEFINED",
          "providerUrgency": "NOT_DEFINED"
        }
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-08-04T14:08:23.254769Z",
          "id": "CVE-2026-69249",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "yes"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-400"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/pyca/cryptography/commit/3763aa79b",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/pyca/cryptography/commit/4a12cf49675a184e47f912b00b04f3a629283582",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/pyca/cryptography/pull/14960",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/pyca/cryptography/security/advisories/GHSA-jwv3-5hgf-82ww",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/pypa/advisory-database/tree/main/vulns/cryptography/PYSEC-2026-3553.yaml",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/pyca/cryptography/security/advisories/GHSA-jwv3-5hgf-82ww",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
    }
  ]
}