CVE-2026-8647
Deferred Deferred - Pending Action
Insecure Random Number Generation in Crypt::ScryptKDF Perl Module

Publication date: 2026-05-26

Last updated on: 2026-05-28

Assigner: CPANSec

Description
Crypt::ScryptKDF versions through 0.010 for Perl uses insecure random number source when no CSPRNG module is available. The random_bytes function fell back to using the built-in rand() function when none of the Perl modules Crypt::PRNG, Crypt::OpenSSL::Random, Net::SSLeay, Crypt::Random, or Bytes::Random::Secure were available.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-05-26
Last Modified
2026-05-28
Generated
2026-06-16
AI Q&A
2026-05-27
EPSS Evaluated
2026-06-14
NVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
openwall crypt_scryptkdf to 0.011 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-338 The product uses a Pseudo-Random Number Generator (PRNG) in a security context, but the PRNG's algorithm is not cryptographically strong.
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Executive Summary

This vulnerability exists in Crypt::ScryptKDF versions through 0.010 for Perl, where the module uses an insecure random number source if no cryptographically secure pseudorandom number generator (CSPRNG) module is available.

Specifically, the random_bytes function falls back to using Perl's built-in rand() function when none of the secure random modules such as Crypt::PRNG, Crypt::OpenSSL::Random, Net::SSLeay, Crypt::Random, or Bytes::Random::Secure are present.

Since rand() is not cryptographically secure, this fallback results in weak randomness, which can compromise the security of cryptographic operations relying on this module.

Impact Analysis

The impact of this vulnerability is that cryptographic keys or other security-critical values generated by Crypt::ScryptKDF may be predictable or guessable due to the use of an insecure random number source.

This can lead to weakened encryption, making it easier for attackers to break the cryptographic protections, potentially resulting in unauthorized data access or compromise.

Mitigation Strategies

To mitigate this vulnerability, ensure that a cryptographically secure pseudo-random number generator (CSPRNG) Perl module is installed and available.

  • Install one of the following Perl modules: Crypt::PRNG, Crypt::OpenSSL::Random, Net::SSLeay, Crypt::Random, or Bytes::Random::Secure.
  • Upgrade Crypt::ScryptKDF to a version later than 0.010 where this fallback to insecure rand() is fixed.
Compliance Impact

The vulnerability involves the use of an insecure random number source in Crypt::ScryptKDF versions through 0.010 for Perl when no CSPRNG module is available. This weakness (CWE-338) could undermine the security of cryptographic operations.

While the provided information does not explicitly mention compliance with standards such as GDPR or HIPAA, the use of weak cryptographic primitives can potentially lead to non-compliance with these regulations, which require strong data protection measures.

Therefore, this vulnerability could negatively impact compliance with common security standards and regulations that mandate the use of secure cryptographic methods to protect sensitive data.

Detection Guidance

To detect this vulnerability on your system, you should check the version of the Crypt::ScryptKDF Perl module installed and verify whether it is version 0.010 or earlier.

Additionally, you should check if any of the recommended CSPRNG modules (Crypt::PRNG, Crypt::OpenSSL::Random, Net::SSLeay, Crypt::Random, or Bytes::Random::Secure) are installed. If none of these modules are present and the Crypt::ScryptKDF version is vulnerable, your system is at risk.

Suggested commands to detect the vulnerability include:

  • Check the installed version of Crypt::ScryptKDF: perl -MCrypt::ScryptKDF -e 'print $Crypt::ScryptKDF::VERSION . "\n";'
  • Check if recommended CSPRNG modules are installed, for example: perl -MCrypt::PRNG -e 1; perl -MCrypt::OpenSSL::Random -e 1; perl -MNet::SSLeay -e 1; perl -MCrypt::Random -e 1; perl -MBytes::Random::Secure -e 1

If the version is 0.010 or earlier and none of these modules load successfully, the system is vulnerable.

Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-8647. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart