CVE-2026-85783

Estado: Pendiente de análisisSin puntuar—
Gravedad—Sin puntuar
Probabilidad de explotación0.22 %mayor que el 11 % de las CVE
Explotación activaNono figura en el catálogo de CISA
Exploit públicoNo conocidosin código público localizado

Crypt::Age en Perl, en versiones anteriores a 0.004, permite el agotamiento de la CPU mediante un número ilimitado de stanzas de destinatario, cada una de las cuales conlleva una multiplicación escalar X25519 en unwrap_file_key.

El analizador de cabeceras acepta cualquier número de stanzas de destinatario, y unwrap_file_key prueba cada identidad contra cada stanza X25519. Cada intento ejecuta una multiplicación escalar, un HKDF y una apertura ChaCha20-Poly1305. El MAC de la cabecera no puede comprobarse primero, porque su clave procede de la clave de fichero, que solo produce un desencapsulado exitoso.

Leer descripción completaMostrar menos

Cada stanza ocupa 98 bytes de cabecera controlada por el atacante y da lugar a una multiplicación escalar por cada identidad que se posea, y el fichero solo se rechaza una vez ejecutadas todas ellas. Un llamador llega a esta situación a través de decrypt, decrypt_file o decrypt_filehandle siempre que descifre un fichero que no escribió.

Traducción automática del texto original de NVD (en inglés).

CVSS

NVD no ha asignado puntuación CVSS a esta CVE (habitual desde el cambio de política de abril de 2026).

Probabilidad de explotación (EPSS)

Probabilidad de explotación en los próximos 30 días
0.22 %
Percentil entre todas las CVEs puntuadas
11
Fecha de la puntuación
23/10/2026

EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).

Tecnologías afectadas (1)

⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.

CWE

Referencias

Mostrar las 2 referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-85783",
  "cveTags": [],
  "metrics": {},
  "affected": [
    {
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
      "affectedData": [
        {
          "repo": "https://github.com/Getty/p5-crypt-age",
          "modules": [
            "Crypt::Age"
          ],
          "versions": [
            {
              "status": "affected",
              "version": "0",
              "lessThan": "0.004",
              "versionType": "custom"
            }
          ],
          "packageURL": "pkg:cpan/Crypt-Age",
          "packageName": "Crypt-Age",
          "programFiles": [
            "lib/Crypt/Age/Header.pm"
          ],
          "collectionURL": "https://cpan.org/modules",
          "defaultStatus": "unaffected",
          "programRoutines": [
            {
              "name": "Crypt::Age::Header::parse_from_fh"
            },
            {
              "name": "Crypt::Age::Header::unwrap_file_key"
            }
          ]
        }
      ]
    }
  ],
  "published": "2026-10-20T22:20:05.470",
  "references": [
    {
      "url": "https://metacpan.org/release/GETTY/Crypt-Age-0.004/changes",
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e"
    },
    {
      "url": "http://www.openwall.com/lists/oss-security/2026/10/20/39",
      "source": "af854a3a-2127-422b-91ae-364da2661108"
    }
  ],
  "vulnStatus": "Awaiting Analysis",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
      "description": [
        {
          "lang": "en",
          "value": "CWE-405"
        },
        {
          "lang": "en",
          "value": "CWE-770"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "Crypt::Age versions before 0.004 for Perl allow CPU exhaustion via an unbounded number of recipient stanzas, each costing an X25519 scalar multiplication in unwrap_file_key.\n\nThe header parser accepts any number of recipient stanzas, and unwrap_file_key tries every identity against every X25519 stanza. Each attempt runs a scalar multiplication, an HKDF and a ChaCha20-Poly1305 open. The header MAC cannot be checked first, because its key comes from the file key, which only a successful unwrap produces.\n\nEach stanza is 98 bytes of attacker-chosen header and buys one scalar multiplication per identity held, and the file is rejected only after every one of them has run. A caller reaches this through decrypt, decrypt_file or decrypt_filehandle whenever it decrypts a file it did not write."
    }
  ],
  "lastModified": "2026-10-22T17:21:57.293",
  "sourceIdentifier": "9b29abf9-4ab0-4765-b253-1875cd9b441e"
}