Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify endpoint using Crypt::Password check_password
-
DeliverySubmit many timed authentication requests
-
ExploitMeasure eq comparison timing per byte
-
ExecutionStatistically infer matching hash prefix
-
ImpactRecover 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
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.
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
2DescriptionCVE.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
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.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Predictable salt generation in Crypt::Password through version 0.28 for Perl weakens the security of stored password has
Perl Crypt::NaCl::Sodium module through 2.002 has potential integer overflows in cryptographic operations that could wea
Crypt::Sodium::XS for Perl bundles a vulnerable version of libsodium (<= 1.0.20) that has a signature verification flaw.
Heap out-of-bounds read in the Perl module Crypt::OpenSSL::PKCS12 before version 1.96 lets a crafted PKCS#12 file leak a
Heap out-of-bounds read in the Crypt::OpenSSL::X509 Perl module (versions before 2.1.3) lets a crafted X.509 certificate
Integer overflow in Crypt::NaCl::Sodium Perl module through version 2.001 on 32-bit systems. The Sodium.xs binding casts
Private-key recovery in the Crypt::DSA Perl module (all versions before 1.22) stems from a biased random number generato
NULL pointer dereference in Crypt::OpenSSL::PKCS12 before version 1.98 for Perl enables process crashes when any caller
Denial of service in the Crypt::OpenSSL::X509 Perl module before 2.1.3 lets a malformed X.509 certificate crash any Perl
Heap buffer overflow in Crypt::SysRandom::XS before version 0.010 allows denial of service through negative length param
Heap buffer overflow in Perl's Crypt::URandom module (versions 0.41-0.54) allows denial of service through integer wrapa
Crypt::Sodium::XS versions through 0.001000 for Perl has potential integer overflows. Combined aead encryption, combined
Same weakness CWE-208 – Observable Timing Discrepancy
View allSame technique Information Disclosure
View allVendor StatusVendor
Debian
| Release | Status | Fixed Version | Urgency |
|---|---|---|---|
| forky, sid | vulnerable | 0.28-2 | - |
| (unstable) | fixed | (unfixed) | - |
EUVD-2026-45894
GHSA-c9g9-v2j9-8ffv
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB