Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify forking Perl app using shared PRNG state
-
DeliveryObtain one issued secret from a worker
-
ExploitPredict identical stream in sibling processes
-
ExecutionForge tokens or session identifiers
-
ImpactHijack sessions or impersonate users
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Proper seed usage
|
| Exploitation Conditions | Exploitation requires that the victim application uses Bytes::Random::Secure in one of two specific patterns: an OO generator object instantiated BEFORE the process calls fork(), or the module's functional/procedural interface used across forked processes - in either case the seeded PRNG state is copied into children and never re-seeded. The application must be a multiprocess (forking/preforking) Perl program that generates security-sensitive values from this module, and the attacker must be able to observe or correlate the resulting secrets across processes. Limiting factors: applications that instantiate the generator AFTER forking (per-child), single-process applications, and non-default usage that explicitly re-seeds are not affected; there is no special privilege or authentication needed against the module itself, but realistic impact depends on the secrets being exposed to or usable by the attacker. |
| Impact | Signals are mixed and worth reconciling. The NVD CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N, C:H/I:N/A:N = 7.5) treats this as a remotely reachable confidentiality issue, which is reasonable insofar as the predictable secrets (tokens, keys) are often exposed or used over the network - but exploitation realistically depends on the victim application using a specific vulnerable coding pattern (object created before fork, or the functional interface), which is a non-default-severity condition the base score does not capture; effective attack complexity is higher than AC:L implies. EPSS is low (0.16%, percentile 6%) and the issue is not in CISA KEV, consistent with no active exploitation and no public exploit code. This is a genuine cryptographic correctness defect with high impact where present, but it is a developer/deployment-pattern-dependent weakness rather than a broadly weaponizable remote vulnerability - prioritize it for Perl multiprocess services (preforking web apps, job workers) that handle this module, but it is not an emergency for environments not running it. |
| Exploit ScenarioDerived | A preforking Perl web application initializes a Bytes::Random::Secure generator at startup, then forks multiple worker processes that each issue session tokens or password-reset values from the shared, identical PRNG state. An attacker who obtains a token from one worker can predict the tokens emitted by sibling workers, hijacking other users' sessions or forging reset links. No public exploit code is identified, but the technique requires only observation and correlation of issued secrets rather than any memory-corruption primitive. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 26, 2026
Predictable secret generation in the Perl module Bytes::Random::Secure (versions through 0.29) occurs because the module fails to detect process forks, causing parent and child processes to share identical PRNG internal state. Applications that instantiate a generator object before fork()ing - or that use the module's functional (procedural) interface - will emit identical random streams across processes, making session tokens, keys, salts, and other secrets predictable across workers. No public exploit is identified at time of analysis, and EPSS is low (0.16%, 6th percentile); CPANSec reported it and an upstream fix is available.
RemediationAI
Apply the upstream fix that adds fork/PID detection so the RNG is re-seeded in each child process; the patch is published at https://security.metacpan.org/patches/B/Bytes-Random-Secure/0.29/CVE-2026-11625-r1.patch and corresponds to pull request https://github.com/daoswald/Bytes-Random-Secure/pull/4 - upgrade to the patched release once it is published to CPAN (a fix is available per vendor advisory, though a specific tagged release version is not stated in the provided data, so verify the fixed version on MetaCPAN before pinning). As an immediate code-level workaround without upgrading, do not instantiate Bytes::Random::Secure objects before forking and avoid the functional interface in preforking servers: create a new generator (or call srand-equivalent re-seed) inside each child after fork, accepting the minor cost of per-child seeding entropy; alternatively, rotate to a fork-safe CSPRNG source for secret generation. Track remediation against the issue and PR at https://github.com/daoswald/Bytes-Random-Secure/issues/3 and https://github.com/daoswald/Bytes-Random-Secure/pull/4.
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
Bytes::Random::Secure is a CPAN module that wraps a CSPRNG (Math::Random::ISAAC seeded via Crypt::Random::Seed) to provide cryptographically secure random bytes for Perl applications. The flaw is a classic CWE-335 (Incorrect Usage of Seeds / improper PRNG re-seeding) condition tied to Unix process forking: when a process calls fork(), the child inherits an exact copy of the parent's memory, including the already-seeded ISAAC state. Because the module cached the RNG object (the internal _RNG handle) without tracking the process ID that created it, both processes continued advancing from the identical seeded state and therefore produced the same byte sequence. The PR diff confirms the root cause and fix: the patch records $self->{_pid} = $$ at build/instantiation and re-instantiates the RNG whenever $$ (current PID) no longer matches the stored PID, forcing a fresh re-seed in each forked child.
Know when Bytes 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
Predictable secrets can be exploited remotely (AV:N) but only when the app uses the pre-fork/functional pattern and the attacker correlates streams, raising complexity (AC:H); high confidentiality impact, no integrity/availability effect.
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
2DescriptionCVE.org
Bytes::Random::Secure versions through 0.29 for Perl share internal state across forked processes.
When an object is initialised before forking, or when the functional interface is used, then the internal state for the PRNG is shared across processes and identical random streams will be produced.
Secrets generated in multiprocess applications are predictable across processes.
Executive ViewAI
The Bytes::Random::Secure Perl module (versions ≤0.29) generates identical values across multiple worker processes, rendering session tokens, encryption keys, and authentication credentials predictable to attackers. Organizations using this module in multi-worker application architectures face direct exposure of cryptographic secrets. Immediate patching is required to restore cryptographic assurance and prevent session hijacking and unauthorized access.
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.
Integer overflow in the Bytes library versions 1.2.1 through 1.11.0 allows attackers to corrupt the BytesMut capacity va
Predictable secret generation in the Perl module Bytes::Random::Secure::Tiny (versions through 1.011) occurs because a P
EUVD-2026-39640
GHSA-r57w-h3mc-4jrv
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB