Description
WebDyne::Session versions before 3.003_704 for Perl generate the session id insecurely.

The session handler generates the session id from an MD5 hash seeded with a call to the built-in rand() function. The rand function is passed a maximum value based on the process id, the epoch time and the reference address of the object, but this information will have no effect on the overall quality of the seed of the message digest.

The rand function is seeded by 32-bits and is predictable. It is considered unsuitable for cryptographic purposes.

Predictable session ids could allow an attacker to gain access to systems.

Note that WebDyne::Session versions 1.042 and earlier appear to be in separate distributions from WebDyne.
Published: 2026-05-11
Score: 6.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises because WebDyne::Session uses an MD5 hash seeded with Perl's rand() function to generate session identifiers. The rand() seeds it with a 32‑bit value derived from the process ID, epoch time and the object reference address, yet the overall seed quality is poor because rand() is deterministic and unsuitable for cryptographic use. As a result, session identifiers are predictable; an attacker can calculate or brute‑force valid session IDs, impersonate users and gain unauthorized access. This flaw is classified as CWE‑338 and CWE‑340.

Affected Systems

All Perl web applications that use the ASPEER WebDyne::Session module versions older than 3.003_704 are vulnerable. Additionally, earlier releases from a separate distribution—WebDyne::Session versions 1.042 and preceding—also lack the secure identifier generation. Any system importing these modules for session handling therefore inherits the predictable ID issue.

Risk and Exploitability

The CVSS score of 6.5 indicates moderate severity, but the EPSS score of <1% shows exploitation probability is low. The vulnerability is not listed in CISA KEV, suggesting no known public exploits. Nonetheless, a remote attacker can predict or brute‑force session IDs by replicating the deterministic rand() call, then hijack an active session or forge authentication. The affected code path is local: the session ID is produced by calling rand() with the process ID, time and reference address, hashing the result with MD5. Because rand() is reproducible, an attacker can generate the same seed and compute a valid session ID, leading to loss of confidentiality and integrity if successful.

Generated by OpenCVE AI on August 4, 2026 at 19:02 UTC.

Remediation

Vendor Solution

Upgrade to version 3.003_704 or later.


OpenCVE Recommended Actions

  • Upgrade to WebDyne::Session 3.003_704 or newer to replace the insecure session‑ID generation routine.
  • After updating, regenerate any existing session identifiers to eliminate previously predictable IDs.
  • If an immediate upgrade cannot be performed, replace the rand()‑based ID generator with a cryptographically secure random source, such as Perl's Crypt::Random module or a custom UUID generator that uses a strong entropy source.
  • Optionally, monitor session logs for anomalous or repeated session IDs to detect potential hijacking attempts.

Generated by OpenCVE AI on August 4, 2026 at 19:02 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 02 Aug 2026 10:15:00 +0000

Type Values Removed Values Added
Description WebDyne::Session versions through 2.075 for Perl generates the session id insecurely. The session handler generates the session id from an MD5 hash seeded with a call to the built-in rand() function. The rand function is passed a maximum value based on the process id, the epoch time and the reference address of the object, but this information will have no effect on the overall quality of the seed of the message digest. The rand function is seeded by 32-bits and is predictable. It is considered unsuitable for cryptographic purposes. Predictable session ids could allow an attacker to gain access to systems. Note that WebDyne::Session versions 1.042 and earlier appear to be in separate distributions from WebDyne. WebDyne::Session versions before 3.003_704 for Perl generate the session id insecurely. The session handler generates the session id from an MD5 hash seeded with a call to the built-in rand() function. The rand function is passed a maximum value based on the process id, the epoch time and the reference address of the object, but this information will have no effect on the overall quality of the seed of the message digest. The rand function is seeded by 32-bits and is predictable. It is considered unsuitable for cryptographic purposes. Predictable session ids could allow an attacker to gain access to systems. Note that WebDyne::Session versions 1.042 and earlier appear to be in separate distributions from WebDyne.
Title WebDyne::Session versions through 2.075 for Perl generates the session id insecurely WebDyne::Session versions before 3.003_704 for Perl generate the session id insecurely
References

Mon, 11 May 2026 18:30:00 +0000

Type Values Removed Values Added
References

Mon, 11 May 2026 17:15:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 11 May 2026 17:00:00 +0000

Type Values Removed Values Added
First Time appeared Aspeer
Aspeer webdyne::session
Vendors & Products Aspeer
Aspeer webdyne::session

Mon, 11 May 2026 07:45:00 +0000

Type Values Removed Values Added
Description WebDyne::Session versions through 2.075 for Perl generates the session id insecurely. The session handler generates the session id from an MD5 hash seeded with a call to the built-in rand() function. The rand function is passed a maximum value based on the process id, the epoch time and the reference address of the object, but this information will have no effect on the overall quality of the seed of the message digest. The rand function is seeded by 32-bits and is predictable. It is considered unsuitable for cryptographic purposes. Predictable session ids could allow an attacker to gain access to systems. Note that WebDyne::Session versions 1.042 and earlier appear to be in separate distributions from WebDyne.
Title WebDyne::Session versions through 2.075 for Perl generates the session id insecurely
Weaknesses CWE-338
CWE-340
References

Subscriptions

Aspeer Webdyne::session
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-08-02T09:33:38.874Z

Reserved: 2026-03-28T19:18:57.110Z

Link: CVE-2026-5084

cve-icon Vulnrichment

Updated: 2026-05-11T16:53:23.622Z

cve-icon NVD

Status : Deferred

Published: 2026-05-11T08:16:16.210

Modified: 2026-08-02T10:16:21.207

Link: CVE-2026-5084

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T19:15:03Z

Weaknesses
  • CWE-338

    Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)

  • CWE-340

    Generation of Predictable Numbers or Identifiers