Skip to main content

Crypt::Password EUVDEUVD-2026-45894

| CVE-2026-6656 HIGH
Observable Timing Discrepancy (CWE-208)
2026-07-20 CPANSec GHSA-c9g9-v2j9-8ffv
7.5
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

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

  1. Access
    Identify endpoint using Crypt::Password check_password
  2. Delivery
    Submit many timed authentication requests
  3. Exploit
    Measure eq comparison timing per byte
  4. Execution
    Statistically infer matching hash prefix
  5. Impact
    Recover stored hash incrementally

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V6 - Authentication Timing attack prevention
Exploitation Conditions

Exploitation requires that an application expose a code path calling Crypt::Password's check_password (versions ≤0.28) in a way the attacker can invoke repeatedly and time precisely, and that the attacker can collect enough timing samples to overcome network and system jitter. What limits exploitation: the leak is the stored password hash, not the plaintext; success depends on high-resolution, low-noise timing measurements (network latency, load balancers, and rate limiting all degrade feasibility, contradicting the AC:L rating); and there is no authentication bypass - the attacker gains hash-guessing signal, not direct access. No special non-default configuration is required beyond simply using the vulnerable module's check_password.

Impact

The published CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/C:H/I:N/A:N = 7.5) rates this as network-reachable, low-complexity, unauthenticated with high confidentiality impact - but multiple other signals argue the real-world risk is considerably lower. EPSS is 0.14% (4th percentile), SSVC exploitation is 'none', and no POC is known. Most importantly, practical exploitation of a timing side channel over a network is hard: an attacker must collect large numbers of samples to average out network and scheduling jitter, which conflicts with the AC:L (low complexity) rating - a real assessment would lean toward AC:H. What actually leaks is the stored hash value, not the plaintext password, and only when an attacker can repeatedly invoke check_password and precisely measure response time, so C:H may overstate impact. SSVC 'Automatable: yes' and 'Technical Impact: partial' are consistent with a low-severity information-disclosure issue. Net: treat this as a low-to-moderate priority hardening fix rather than an urgent, actively-exploited threat. Note the discrepancy: CVSS AC:L versus the inherent statistical difficulty of remote timing attacks - verify complexity assumptions before prioritizing.

Exploit ScenarioDerived

An attacker who can repeatedly submit authentication attempts against an application built on Crypt::Password measures the response time of check_password across many requests and uses the byte-by-byte timing differences of the eq comparison to progressively recover the stored hash one character at a time. No POC is currently known, and the statistical sampling required over a network makes this slow and noisy in practice.

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

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

Alert me

AnalysisAIv1 – Jul 22, 2026

Timing side-channel in the Crypt::Password Perl module (versions through 0.28) allows attackers to incrementally guess a stored password hash because check_password compares values with Perl's short-circuiting eq operator instead of a constant-time comparison. The flaw is classic CWE-208 (Observable Timing Discrepancy); it carries a CVSS 7.5 but a very low EPSS (0.14%, 4th percentile) and no public exploit identified at time of analysis, and SSVC records exploitation status as none. A vendor patch is available.

RemediationAI

Patch available per vendor advisory - upgrade to the fixed release published on CPAN by author DRSTEVE above 0.28 (obtain the exact fixed version from the CPAN release page https://metacpan.org/release/DRSTEVE/Crypt-Password-0.28/source/lib/Crypt/Password.pm and the RT ticket https://rt.cpan.org/Ticket/Display.html?id=180162; the input confirms a patch exists but does not state the exact fixed version number, so verify it on CPAN before pinning). Debian users should apply the distribution security update once released for the two tracked releases. As an interim compensating control, replace the eq-based comparison in any wrapper code with a constant-time comparison and, at the deployment level, add rate-limiting and randomized delays on authentication endpoints that call check_password to raise the sampling cost of a timing attack - noting that added jitter increases latency and only slows, rather than eliminates, the leak. Reference oss-security discussion: https://seclists.org/oss-sec/2026/q3/176.

Affected VersionsENISA

Crypt::Password 0 ≤0.28

Affected Packages

euvd crypt_password no fix

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::Password is a Perl convenience wrapper around crypt()-style password hashing distributed on CPAN by author DRSTEVE (CPE cpe:2.3:a:drsteve:crypt::password). Its check_password routine (see lib/Crypt/Password.pm lines ~190-193) validates a candidate by hashing it and comparing the result to the stored hash using the built-in eq string-equality operator. eq is not constant-time: it returns as soon as it finds the first differing byte, so the comparison duration correlates with how many leading characters match. This is the textbook root cause of CWE-208, where measurable timing discrepancies leak information about a secret. The correct mitigation class is a constant-time comparison (e.g. a length-independent XOR/accumulator compare) so that verification time is independent of how many bytes match.

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 3.7 LOW

Remote but timing attacks need many low-noise samples so AC:H; no auth needed (PR:N); leak is partial hash information not full plaintext, so C:L and I/A:N.

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

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

2
CVE Published
Jul 20, 2026 - 07:01 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 20, 2026 - 07:01 cve.org
HIGH 7.5

DescriptionCVE.org

Crypt::Password versions through 0.28 for Perl are susceptible to timing attacks.

The check_password method uses the built-in eq operator. This allows discrepancies in timing to be used to guess the underlying hash.

Executive ViewAI

Why It Matters

Crypt::Password Perl module versions 0.28 and earlier contain a vulnerability that allows attackers to guess stored passwords without normal detection methods, creating direct risk of unauthorized account access and potential data compromise for organizations using this module for user authentication. The flaw affects any system relying on this component for password verification. Immediate identification and patching of affected infrastructure is essential.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Low
niche CPAN Perl password module, limited deployment footprint
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.1%
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-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

CVE-2026-30910 HIGH
7.5 Mar 08

Crypt::Sodium::XS versions through 0.001000 for Perl has potential integer overflows. Combined aead encryption, combined

Vendor StatusVendor

Debian

libcrypt-password-perl
Release Status Fixed Version Urgency
forky, sid vulnerable 0.28-2 -
(unstable) fixed (unfixed) -

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