Severity by source
Sources disagree (Medium–Critical)AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Predicting SHA-1 from epoch, PID, and heap address requires offline computation and timing correlation, raising AC to H; session forgery enables both read and limited write of session state.
vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.
CVSS VectorVendor: CPANSec
Lifecycle Timeline
2DescriptionCVE.org
Mojolicious::Sessions::Storable versions through 0.05 for Perl generate session ids insecurely.
The default session id generator returns a SHA-1 hash seeded with the built-in rand function, the epoch time, the heap address of an anonymous hash, and the PID.
These are predictable or low-entropy sources that are unsuitable for security purposes.
AnalysisAI
Predictable session ID generation in Mojolicious::Sessions::Storable through version 0.05 for Perl exposes applications to session hijacking. The default session ID generator computes a SHA-1 hash seeded exclusively with low-entropy, attacker-observable sources - Perl's built-in rand function, Unix epoch time, a heap address, and the process ID - none of which meet cryptographic unpredictability requirements for session tokens. No public exploit or active exploitation has been identified (EPSS 0.27%, 19th percentile; not in CISA KEV), but the flaw is automatable per CISA SSVC, meaning a scripted attacker can systematically enumerate candidate session IDs without complex per-target tuning.
Technical ContextAI
The affected component is Mojolicious::Sessions::Storable (CPE: cpe:2.3:a:hayajo:mojolicious::sessions::storable:*:*:*:*:*:*:*:*), a CPAN plugin for the Mojolicious Perl web framework that serializes and stores session data. The root cause is CWE-340 (Generation of Predictable Numbers or Identifiers): SHA-1 is used as a hash function, not a CSPRNG, and its output is only as random as its inputs. Perl's rand() is a deterministic PRNG seeded from the system clock; epoch time and PID are both low-cardinality values guessable within narrow windows; and heap addresses, while partially randomized by ASLR, provide far less entropy than a true random source. An attacker who can observe or approximate request timing can dramatically reduce the search space for valid session tokens. The CPANSec advisory cross-references their own guidance on secure random data for Perl at security.metacpan.org, and a companion CVE (CVE-2025-40923) appears related, suggesting a broader pattern in this library family.
RemediationAI
A vendor-supplied patch is available from CPANSec at https://security.metacpan.org/patches/M/Mojolicious-Plugin-SessionStore/0.05/CVE-2026-9692-r1.patch; this is a patch file against version 0.05, and a fully released post-0.05 package version on CPAN has not been independently confirmed from the available data - check metacpan.org/dist/Mojolicious-Plugin-SessionStore for the latest published release before applying the raw patch. As an immediate compensating control, override the default session ID generator with a cryptographically secure alternative: replace the SHA-1/rand-based generator with one sourced from Perl's Crypt::URandom or equivalent OS-level CSPRNG (/dev/urandom). Disabling session persistence entirely is an extreme but effective fallback if the module cannot be patched and an alternative session backend (e.g., Mojolicious::Plugin::Session with a secure generator) can be substituted. Invalidating all current sessions after patching is advisable, as previously issued IDs were generated insecurely. The CPANSec guidance at https://security.metacpan.org/docs/guides/random-data-for-security.html provides Perl-specific remediation patterns.
More in Mojolicious
View allMojolicious versions from 0.999922 for Perl uses a hard coded string, or the application's class name, as an HMAC sessio
Mojolicious versions from 7.28 for Perl will generate weak HMAC session cookie secrets via "mojo generate app" by defaul
CSRF session hijacking in Mojolicious::Plugin::Web::Auth::OAuth2 through version 0.17 for Perl stems from a predictable
CSRF token disclosure in the Perl Mojolicious web framework (versions 4.59 up to but not including 9.48) allows a networ
Same technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: CriticalShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-37926
GHSA-3m67-fq74-f4qg