CVE-2026-85783
Received Received - Intake

CPU Exhaustion in Crypt::Age Perl Module

Vulnerability report for CVE-2026-85783, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-10-20

Last updated on: 2026-10-20

Assigner: CPANSec

Description

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. The 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. Each 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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-10-20
Last Modified
2026-10-20
Generated
2026-10-21
AI Q&A
2026-10-21
EPSS Evaluated
N/A
NVD

Affected Vendors & Products

Currently, no data is known.

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-770 The product allocates a reusable resource or group of resources on behalf of an actor without imposing any intended restrictions on the size or number of resources that can be allocated.
CWE-405 The product does not properly control situations in which an adversary can cause the product to consume or produce excessive resources without requiring the adversary to invest equivalent work or otherwise prove authorization, i.e., the adversary's influence is "asymmetric."

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability is a CPU exhaustion issue in Crypt::Age versions before 0.004 for Perl. It occurs when an attacker sends a file with an unbounded number of recipient stanzas. Each stanza triggers an X25519 scalar multiplication during decryption, consuming significant CPU resources. The header parser accepts these stanzas without limit, and the decryption process attempts every identity against each stanza, leading to excessive computational load.

Detection Guidance

This vulnerability is specific to Perl's Crypt::Age module and involves CPU exhaustion during decryption. Detection requires checking for vulnerable versions of the module and monitoring for unusual CPU usage during decryption operations.

Impact Analysis

This vulnerability can cause denial-of-service by consuming excessive CPU resources during decryption. If an attacker sends a maliciously crafted file, it could slow down or crash the system attempting to decrypt it. This affects any application using Crypt::Age for decryption, especially those processing untrusted files.

Mitigation Strategies

Update the Crypt::Age module to version 0.004 or later. Avoid decrypting files from untrusted sources until the update is applied. Monitor system performance for abnormal CPU usage during decryption tasks.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-85783. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart