← Back to CVE Explorer

CVE-2026-40097

Full vulnerability record from the local CVENow database.

Description

Step CA is an online certificate authority for secure, automated certificate management for DevOps. From 0.24.0 to before 0.30.0-rc3, an attacker can trigger an index out-of-bounds panic in Step CA by sending a crafted attestation key (AK) certificate with an empty Extended Key Usage (EKU) extension during TPM device attestation. When processing a device-attest-01 ACME challenge using TPM attestation, Step CA validates that the AK certificate contains the tcg-kp-AIKCertificate Extended Key Usage OID. During this validation, the EKU extension value is decoded from its ASN.1 representation and the first element is checked. A crafted certificate could include an EKU extension that decodes to an empty sequence, causing the code to panic when accessing the first element of the empty slice. This vulnerability is only reachable when a device-attest-01 ACME challenge with TPM attestation is configured. Deployments not using TPM device attestation are not affected. This vulnerability is fixed in 0.30.0-rc3.

Severity
LOW
CVSS score
3.7 (v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2026-04-10 17:17:12.823000
Last modified
2026-10-26 22:10:00.163000
View original CVE JSON
{
  "id": "CVE-2026-40097",
  "sourceIdentifier": "[email protected]",
  "published": "2026-04-10T17:17:12.823",
  "lastModified": "2026-10-26T22:10:00.163",
  "vulnStatus": "Analyzed",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Step CA is an online certificate authority for secure, automated certificate management for DevOps. From 0.24.0 to before 0.30.0-rc3, an attacker can trigger an index out-of-bounds panic in Step CA by sending a crafted attestation key (AK) certificate with an empty Extended Key Usage (EKU) extension during TPM device attestation. When processing a device-attest-01 ACME challenge using TPM attestation, Step CA validates that the AK certificate contains the tcg-kp-AIKCertificate Extended Key Usage OID. During this validation, the EKU extension value is decoded from its ASN.1 representation and the first element is checked. A crafted certificate could include an EKU extension that decodes to an empty sequence, causing the code to panic when accessing the first element of the empty slice. This vulnerability is only reachable when a device-attest-01 ACME challenge with TPM attestation is configured. Deployments not using TPM device attestation are not affected. This vulnerability is fixed in 0.30.0-rc3."
    },
    {
      "lang": "es",
      "value": "Step CA es una autoridad de certificación en línea para la gestión segura y automatizada de certificados para DevOps. Desde la versión 0.24.0 hasta antes de la 0.30.0-rc3, un atacante puede desencadenar un pánico por índice fuera de límites en Step CA al enviar un certificado de clave de atestación (AK) manipulado con una extensión de Uso Extendido de Clave (EKU) vacía durante la atestación de dispositivo TPM. Al procesar un desafío ACME device-attest-01 utilizando la atestación TPM, Step CA valida que el certificado AK contenga el OID de Uso Extendido de Clave tcg-kp-AIKCertificate. Durante esta validación, el valor de la extensión EKU se decodifica de su representación ASN.1 y se verifica el primer elemento. Un certificado manipulado podría incluir una extensión EKU que se decodifica a una secuencia vacía, causando que el código entre en pánico al acceder al primer elemento del slice vacío. Esta vulnerabilidad solo es alcanzable cuando se configura un desafío ACME device-attest-01 con atestación TPM. Las implementaciones que no utilizan la atestación de dispositivo TPM no se ven afectadas. Esta vulnerabilidad está corregida en la versión 0.30.0-rc3."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "smallstep",
          "product": "certificates",
          "versions": [
            {
              "version": ">= 0.24.0, < 0.30.0-rc3",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L",
          "baseScore": 3.7,
          "baseSeverity": "LOW",
          "attackVector": "NETWORK",
          "attackComplexity": "HIGH",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "NONE",
          "availabilityImpact": "LOW"
        },
        "exploitabilityScore": 2.2,
        "impactScore": 1.4
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-04-10T18:30:05.878982Z",
          "id": "CVE-2026-40097",
          "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-129"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:smallstep:step-ca:*:*:*:*:*:go:*:*",
              "versionStartIncluding": "0.24.0",
              "versionEndExcluding": "0.30.0",
              "matchCriteriaId": "ABA8B83F-37DD-4755-AFB6-CD76AF8A4F4A"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:smallstep:step-ca:0.30.0:rc1:*:*:*:go:*:*",
              "matchCriteriaId": "D49EF50A-2928-4577-A5AD-0CD81C9E1AE8"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:smallstep:step-ca:0.30.0:rc2:*:*:*:go:*:*",
              "matchCriteriaId": "E238C89C-4A97-4FA1-8DE0-9FE51CDF59B9"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/smallstep/certificates/commit/ffd31ac0a87e03b0224cb8363094bfe602242888",
      "source": "[email protected]",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://github.com/smallstep/certificates/pull/2569",
      "source": "[email protected]",
      "tags": [
        "Issue Tracking",
        "Patch"
      ]
    },
    {
      "url": "https://github.com/smallstep/certificates/releases/tag/v0.30.0",
      "source": "[email protected]",
      "tags": [
        "Product",
        "Release Notes"
      ]
    },
    {
      "url": "https://github.com/smallstep/certificates/security/advisories/GHSA-9qq8-cgcv-qmc9",
      "source": "[email protected]",
      "tags": [
        "Mitigation",
        "Vendor Advisory"
      ]
    }
  ]
}