Read the docs
TI-2026-77120 Aliases CVE-2026-85783GHSA-rvhp-9hpj-rh7c

Crypt-Age for Perl allows CPU exhaustion via unbounded recipient stanzas

Priority MEDIUM 40CWE-405Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
Denial of service
Confidentiality · integrity · availability
None · None · High
Fix status
Fixed

Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA. Impact type from CWE-770.

Summary

Crypt-Age versions before 0.004 for Perl let an attacker exhaust CPU by sending a file with an unbounded number of recipient stanzas. The header parser accepts any number of stanzas, and unwrap_file_key tries every identity against every X25519 stanza, so each stanza costs a scalar multiplication per identity held. An unauthenticated remote attacker can trigger this by supplying a crafted file to a caller that decrypts files it did not write, through decrypt, decrypt_file or decrypt_filehandle. The file is rejected only after all attempts have run, which is tracked as CWE-405 and CWE-770.

Written with Claude Haiku 5.5 from the sources below · 2026-10-30

Description from the CNA

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.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00561 46th percentileScored 2026-11-07
Fix Fixed Crypt-Age: 0.004

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
—Crypt-Agebefore 0.0040.004Patch availableCNA
  • Crypt-Age Vendor— Affected before 0.004 Fixed in 0.004 Patch available CNA

Remediation

Update Crypt-Age to version 0.004 or later, which fixes this flaw.

Written with Claude Haiku 5.5 from the sources below · 2026-10-30

  • Fix · CNA Crypt-Age Fixed in 0.004

Timeline

  1. 2026-10-21 Threatist record created from CVE-2026-85783
  2. 2026-10-21 Alias added: GHSA-rvhp-9hpj-rh7c
  3. 2026-10-30 CVSS score added · CISA ADP
  4. 2026-10-30 CISA SSVC decision points changed
  5. 2026-11-01 Priority changed: LOW → MEDIUM

References

Sources