CVE-2026-5088
Published: 15 April 2026
Summary
CVE-2026-5088 is a high-severity PRNG (CWE-338) vulnerability in Jdeguest Apache\. Its CVSS base score is 7.5 (High).
Operationally, exploitation aligns with the MITRE ATT&CK technique Password Cracking (T1110.002); ranked at the 14.9th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.
The strongest mitigations our analysis identified are NIST 800-53 IA-5 (Authenticator Management) and SI-2 (Flaw Remediation).
Threat & Defense at a Glance
Threat & Defense Details
Mitigating Controls (NIST 800-53 r5)AI
Flaw remediation directly addresses the vulnerability by requiring timely patching of the Apache::API::Password module to version 0.5.3 or later, eliminating the insecure fallback to Perl's rand() for salt generation.
Authenticator management ensures password hashes use sufficient strength of mechanism, including cryptographically secure salts to prevent predictable hashing vulnerable to offline cracking.
Configuration settings enforce installation and use of secure random modules like Crypt::URandom or Bytes::Random::Secure, preventing fallback to the weak rand() function in affected environments.
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
The vulnerability uses a cryptographically weak PRNG (Perl rand) for password salts when secure modules are unavailable, directly enabling efficient offline password cracking via rainbow tables or brute-force as described in the CVE impact.
NVD Description
Apache::API::Password versions through 0.5.2 for Perl can generate insecure random values for salts. The _make_salt and _make_salt_bcrypt methods will attept to load Crypt::URandom and then Bytes::Random::Secure to generate random bytes for the salt. If those modules are unavailable, it will…
more
simply return 16 bytes generated with Perl's built-in rand function. The rand function is unsuitable for cryptographic use. These salts are used for password hashing.
Deeper analysisAI
CVE-2026-5088 affects Apache::API::Password, a Perl module within the Apache2-API distribution, in versions through 0.5.2. The vulnerability stems from the _make_salt and _make_salt_bcrypt methods, which attempt to generate cryptographically secure random bytes for password hashing salts by loading the Crypt::URandom or Bytes::Random::Secure modules. If both are unavailable, the methods fall back to Perl's built-in rand function to produce 16 bytes, which is unsuitable for cryptographic purposes due to its predictability (CWE-338: Use of Cryptographically Weak Pseudo-Random Number Generator). This results in weak salts for password hashing, with a CVSS v3.1 base score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N).
An attacker can exploit this vulnerability in environments where the affected module is used for password hashing without the required secure random modules installed. No privileges, user interaction, or special access are needed, and exploitation is feasible over a network if the application exposes hashed passwords (e.g., via database compromise or improper storage). Successful exploitation enables high-impact confidentiality loss, as predictable salts allow efficient offline cracking of password hashes through rainbow tables or targeted brute-force attacks, potentially exposing plaintext credentials.
Advisories recommend upgrading to Apache2-API version 0.5.3 or later, which addresses the fallback issue as noted in its release changes. Security guidance from metacpan.org emphasizes using cryptographically secure random sources like Crypt::URandom or Bytes::Random::Secure for all security-sensitive operations, with documentation available in module POD files and the metacpan security guide on random data. The issue was disclosed via the oss-security mailing list on 2026-04-15.
Details
- CWE(s)