Crypt-Age for Perl allows CPU exhaustion via unbounded recipient stanzas
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
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
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | Crypt-Age | before 0.004 | 0.004 | Patch available | CNA |
- 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
- 2026-10-21 Threatist record created from CVE-2026-85783
- 2026-10-21 Alias added: GHSA-rvhp-9hpj-rh7c
- 2026-10-30 CVSS score added · CISA ADP
- 2026-10-30 CISA SSVC decision points changed
- 2026-11-01 Priority changed: LOW → MEDIUM
References
Sources
- CVE-2026-85783 · CVE Program
- CVE-2026-85783 · NVD
- FIRST EPSS
- GHSA-rvhp-9hpj-rh7c · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences