Impact
A flaw in the Crypt::Age Perl module allows an attacker to construct a ciphertext containing an unbounded number of recipient stanzas. Each stanza forces the library to perform an expensive X25519 scalar multiplication for every identity, followed by HKDF and ChaCha20-Poly1305 checks, before the file is rejected. The cumulative cost can exhaust CPU resources, leading to a denial‑of‑service condition. The issue is an example of CWE‑405 (Use of Unchecked Input Size) and CWE‑770 (Uncontrolled Resource Consumption).
Affected Systems
Perl applications that depend on the Crypt::Age library, specifically versions prior to 0.004, are affected. The vulnerability exists in the decrypt, decrypt_file, and decrypt_filehandle functions. Any environment that loads this module and performs decryption on external files is at risk.
Risk and Exploitability
The vulnerability can be triggered by supplying a crafted file with a large number of recipient stanzas to any decryption call. The attack vector is therefore through file input, which may be local or remote if the application accepts user‑supplied files. No public exploits are listed, and the EPSS score is < 1%, indicating a very low but nonzero probability of exploitation. The CVSS score of 7.5 reflects a moderate‑to‑high severity. While the vulnerability is not listed in the CISA KEV catalog, the combined effect of CPU exhaustion and the exponential cost per recipient stanza can severely degrade availability in shared or high‑traffic environments.
OpenCVE Enrichment