Skip to main content

Crypt::PBKDF2 CVE-2026-9638

| EUVDEUVD-2026-36456 HIGH
Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG) (CWE-338)
2026-06-12 CPANSec GHSA-3rw7-pf56-37cv
7.5
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Compromise database containing PBKDF2 hashes
  2. Delivery
    Extract stored salt values
  3. Exploit
    Reconstruct Perl rand() PRNG state
  4. Execution
    Precompute PBKDF2 candidates for common passwords
  5. Persist
    Match precomputed hashes against stolen records
  6. Impact
    Recover plaintext credentials at scale

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Cryptographic PRNG selection
Exploitation Conditions

Exploitation requires that (1) the target application stores password hashes produced by Crypt::PBKDF2 before 0.261630 using the module's default/internal salt generation rather than caller-supplied salts, and (2) the attacker has already obtained those stored hashes through a separate compromise (database leak, backup theft, SQL injection). The weakness is in salt generation only, so applications that pass their own cryptographically secure salts into Crypt::PBKDF2 are not affected; conversely, the predictability of Perl's rand() depends on the seed and call sequence in the hosting process, so cross-process salt prediction may require additional knowledge of the application's rand() usage pattern.

Impact

The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/C:H/I:N/A:N, 7.5 High) reflects confidentiality impact only and appears overstated for this issue: predictable salts do not directly expose plaintext data over the network - they degrade the offline brute-force resistance of stored hashes that an attacker has already obtained through some other means. Realistically, this is a defense-in-depth weakness whose impact materializes only once a database of Crypt::PBKDF2 hashes is leaked. No public exploit identified at time of analysis and no EPSS or KEV signal is provided. The 'AV:N' rating is questionable since exploitation requires possession of the hash material rather than a network interaction with the library itself - security teams should treat this as a cryptographic hygiene fix rather than an emergency network-exposed RCE.

Exploit ScenarioDerived

An attacker who obtains a dump of a password database hashed with a vulnerable Crypt::PBKDF2 version (for example via SQL injection or a backup leak) recovers or narrows the per-row salts by reconstructing the state of Perl's rand() PRNG from the sequence of stored salts. With predictable salts, the attacker can precompute PBKDF2 hashes for common passwords once and reuse the work across many accounts, or build a targeted rainbow table - dramatically reducing the cost of offline cracking compared to a properly random salt. No public exploit identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 12, 2026

Predictable salt generation in the Perl Crypt::PBKDF2 module before version 0.261630 weakens the cryptographic strength of derived password hashes. The module uses Perl's built-in rand() function - a non-cryptographic PRNG - to generate salt values, making salts guessable and enabling precomputation attacks against stored password hashes. No public exploit identified at time of analysis, but a vendor patch is available and the issue was responsibly disclosed by CPANSec.

RemediationAI

Vendor-released patch: 0.261630 - upgrade the Crypt::PBKDF2 CPAN distribution to version 0.261630 or later (see https://metacpan.org/release/ARODLAND/Crypt-PBKDF2-0.261630/changes and the oss-security advisory at https://seclists.org/oss-sec/2026/q2/899). Because previously generated password hashes were salted with predictable values, simply upgrading does not retroactively strengthen existing stored credentials; operators should plan to force password rotation or rehash on next successful login so that new salts come from the patched CSPRNG path. As a temporary workaround for code you control, pass an explicit salt generated from Crypt::URandom or Crypt::PRNG (Bytes::Random::Secure) into the PBKDF2 generate() call instead of relying on the module's internal salt generator - the trade-off is that every caller must be audited and updated, which is more invasive than a single package upgrade.

Affected VersionsENISA

Crypt::PBKDF2 0 <0.261630

Affected Packages

euvd crypt_pbkdf2 fix: 0.261630

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Crypt::PBKDF2 is a Perl implementation of the PBKDF2 (Password-Based Key Derivation Function 2) key-stretching algorithm widely used to hash passwords for storage. PBKDF2's security depends critically on a unique, unpredictable per-password salt that prevents attackers from precomputing rainbow tables or reusing offline work across multiple targets. CWE-338 (Use of Cryptographically Weak Pseudo-Random Number Generator) is the root cause: the affected code path (visible in lib/Crypt/PBKDF2.pm lines 86-93 on metacpan) calls Perl's built-in rand(), which is a linear congruential generator seeded from limited entropy and is not suitable for cryptographic use. The CPE cpe:2.3:a:arodland:crypt::pbkdf2 confirms the affected package is the ARODLAND-maintained distribution on CPAN.

Know when Crypt gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (CPANSec) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 2.9 LOW

Exploitation requires prior possession of leaked hashes and PRNG-state reconstruction (AV:L, AC:H); only partial credential recovery affects confidentiality (C:L), with no integrity or availability impact.

3.1 AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:L/AC:H/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
SUSE HIGH

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

3
CVSS changed
Jun 12, 2026 - 18:22 NVD
7.5 (HIGH)
Patch available
Jun 12, 2026 - 17:01 EUVD
CVE Published
Jun 12, 2026 - 14:41 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

Crypt::PBKDF2 versions before 0.261630 for Perl generate insecure random values for salts.

These versions use the built-in rand function, which is predictable and unsuitable for cryptography.

Executive ViewAI

Why It Matters

The Perl Crypt::PBKDF2 module before version 0.261630 uses a non-cryptographic random number generator to generate password salts, weakening stored password hashes against precomputation attacks; no public exploit identified at time of analysis. Organizations using this module for credential storage face elevated risk of password compromise if attackers obtain hash databases. Vendor patch is available and should be deployed immediately.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.0%
Top 91% exploitable
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Crypt

View all
CVE-2026-16235 CRITICAL
9.8 Jul 20

Predictable salt generation in Crypt::Password through version 0.28 for Perl weakens the security of stored password has

CVE-2026-30909 CRITICAL
9.8 Mar 08

Perl Crypt::NaCl::Sodium module through 2.002 has potential integer overflows in cryptographic operations that could wea

CVE-2025-15444 CRITICAL
9.8 Jan 06

Crypt::Sodium::XS for Perl bundles a vulnerable version of libsodium (<= 1.0.20) that has a signature verification flaw.

CVE-2026-9265 CRITICAL
9.1 Jun 20

Heap out-of-bounds read in the Perl module Crypt::OpenSSL::PKCS12 before version 1.96 lets a crafted PKCS#12 file leak a

CVE-2026-58102 CRITICAL
9.1 Jul 13

Heap out-of-bounds read in the Crypt::OpenSSL::X509 Perl module (versions before 2.1.3) lets a crafted X.509 certificate

CVE-2026-2588 CRITICAL
9.1 Feb 23

Integer overflow in Crypt::NaCl::Sodium Perl module through version 2.001 on 32-bit systems. The Sodium.xs binding casts

CVE-2026-14570 HIGH
7.5 Jul 05

Private-key recovery in the Crypt::DSA Perl module (all versions before 1.22) stems from a biased random number generato

CVE-2026-17510 HIGH
7.5 Aug 09

NULL pointer dereference in Crypt::OpenSSL::PKCS12 before version 1.98 for Perl enables process crashes when any caller

CVE-2026-6656 HIGH
7.5 Jul 20

Timing side-channel in the Crypt::Password Perl module (versions through 0.28) allows attackers to incrementally guess a

CVE-2026-58101 HIGH
7.5 Jul 13

Denial of service in the Crypt::OpenSSL::X509 Perl module before 2.1.3 lets a malformed X.509 certificate crash any Perl

CVE-2026-2597 HIGH
7.5 Feb 27

Heap buffer overflow in Crypt::SysRandom::XS before version 0.010 allows denial of service through negative length param

CVE-2026-2474 HIGH
7.5 Feb 16

Heap buffer overflow in Perl's Crypt::URandom module (versions 0.41-0.54) allows denial of service through integer wrapa

Vendor StatusVendor

SUSE

Severity: Important
Product Status
openSUSE Tumbleweed Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy