CVE-2025-15604

Amon2 versions before 6.17 for Perl use an insecure random_string implementation for security functions

Published Mar 28, 2026 CVSS 3.1 · 9.8 Critical EPSS < 1% KEV · Not listed
Description
Amon2 versions before 6.17 for Perl use an insecure random_string implementation for security functions.

In versions 6.06 through 6.16, the random_string function will attempt to read bytes from the /dev/urandom device, but if that is unavailable then it generates bytes by concatenating a SHA-1 hash seeded with the built-in rand() function, the PID, and the high resolution epoch time. The PID will come from a small set of numbers, and the epoch time may be guessed, if it is not leaked from the HTTP Date header. The built-in rand function is unsuitable for cryptographic usage.

Before version 6.06, there was no fallback when /dev/urandom was not available.

Before version 6.04, the random_string function used the built-in rand() function to generate a mixed-case alphanumeric string.

This function may be used for generating session ids, generating secrets for signing or encrypting cookie session data and generating tokens used for Cross Site Request Forgery (CSRF) protection.

Remediation

Vendor Solution

Upgrade to Amon2 version 6.17 or later.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
CPEs cpe:2.3:a:tokuhirom:amon2:*:*:*:*:*:perl:*:*
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}

Type Values Removed Values Added
First Time appeared Tokuhirom
Tokuhirom amon2
Vendors & Products Tokuhirom
Tokuhirom amon2
Type Values Removed Values Added
Description Amon2 versions before 6.17 for Perl use an insecure random_string implementation for security functions. In versions 6.06 through 6.16, the random_string function will attempt to read bytes from the /dev/urandom device, but if that is unavailable then it generates bytes by concatenating a SHA-1 hash seeded with the built-in rand() function, the PID, and the high resolution epoch time. The PID will come from a small set of numbers, and the epoch time may be guessed, if it is not leaked from the HTTP Date header. The built-in rand function is unsuitable for cryptographic usage. Before version 6.06, there was no fallback when /dev/urandom was not available. Before version 6.04, the random_string function used the built-in rand() function to generate a mixed-case alphanumeric string. This function may be used for generating session ids, generating secrets for signing or encrypting cookie session data and generating tokens used for Cross Site Request Forgery (CSRF) protection.
Title Amon2 versions before 6.17 for Perl use an insecure random_string implementation for security functions
Weaknesses CWE-338
CWE-340
References
Weaknesses

Sources

Status
PUBLISHED
Assigner
CPANSec
Published
Updated
Apr 1, 2026, 2:13 PM
Reserved
Mar 8, 2026, 11:56 PM
Status
Modified
Published
Mar 28, 2026, 7:16 PM
Modified
Jun 17, 2026, 8:38 AM