Description
Crypt::Password versions through 0.28 for Perl generate insecure random values for salts.

These versions use the built-in rand function, which is predictable and unsuitable for cryptography.
Published: 2026-07-20
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Crypt::Password versions through 0.28 use Perl’s built‑in rand function to construct salts for password hashes, which is deterministic and unsuitable for cryptographic use. This flaw is a CWE‑338 weakness—predictable random values—that allows every salt to be anticipated by an attacker, enabling the creation of pre‑computed hash tables for common passwords or the efficient application of rainbow‑table attacks. The resulting compromise can reveal user passwords from stored hash data, reducing the security of the entire authentication system.

Affected Systems

Crypt::Password (DRSTEVE) for Perl 5 up to version 0.28 is affected. The project has not released a newer release since 2012.

Risk and Exploitability

The CVSS score of 9.8 classifies this as a high‑severity vulnerability, yet the EPSS score of less than 1% indicates that exploitation attempts are currently rare. The most likely attack vector is a post‑compromise scenario where an adversary obtains password hashes; it is inferred that such an attacker can exploit the predictable salt to rapidly test password guesses. This vulnerability is not listed in CISA's KEV catalog, implying that there is no known widespread active exploitation but the possibility remains if attackers target vulnerable systems.

Generated by OpenCVE AI on July 30, 2026 at 19:46 UTC.

Remediation

Vendor Workaround

Users can generate a salt manually using a module such as Crypt::URandom::Token, and pass the salt directly to the password and crypt_password methods. This module has not been updated since 2012. Users should migrate to an alternative solution.


OpenCVE Recommended Actions

  • Generate cryptographically secure salts manually with a module such as Crypt::URandom::Token and supply the salt directly to the password and crypt_password methods.
  • Migrate the application to an actively maintained password hashing library that employs a strong, cryptographic random number generator (for example, Crypt::Passphrase or Authen::Passphrase::BlowfishCrypt).
  • Verify that the new library’s salt‑generation code uses a secure random function before deploying the change.

Generated by OpenCVE AI on July 30, 2026 at 19:46 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 23 Jul 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Drsteve
Drsteve crypt::password
Vendors & Products Drsteve
Drsteve crypt::password

Mon, 20 Jul 2026 13:30:00 +0000

Type Values Removed Values Added
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'}

ssvc

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


Mon, 20 Jul 2026 07:15:00 +0000

Type Values Removed Values Added
Description Crypt::Password versions through 0.28 for Perl generate insecure random values for salts. These versions use the built-in rand function, which is predictable and unsuitable for cryptography.
Title Crypt::Password versions through 0.28 for Perl generate insecure random values for salts
Weaknesses CWE-338
References

Subscriptions

Drsteve Crypt::password
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-07-20T18:38:12.633Z

Reserved: 2026-07-19T15:48:13.976Z

Link: CVE-2026-16235

cve-icon Vulnrichment

Updated: 2026-07-20T18:38:12.633Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-30T20:00:20Z

Weaknesses
  • CWE-338

    Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)