Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify preforked Perl app using shared PRNG
-
DeliveryRequest a secret from attacker-controlled session
-
ExploitObserve predictable random output
-
ExecutionReconstruct shared ISAAC stream
-
PersistPredict victim worker's secrets
-
ImpactHijack session or forge token
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Proper seed usage
|
| Exploitation Conditions | Exploitation requires the target application to initialize a Bytes::Random::Secure::Tiny object BEFORE calling fork() and to reuse that single object across child processes - the classic preforking server pattern; applications that create the generator per-process after forking, or that never fork, are not affected. The attacker further needs to observe enough output from one process to predict the identical stream other processes produce. Limiting factors: it depends entirely on this non-default-by-accident coding pattern, requires the module's output to be used for security-relevant secrets, and threaded (non-fork) deployments are explicitly out of scope since a new thread keeps the same $$. |
| Impact | Signals are mixed and should not be over-weighted by the 7.5/High CVSS alone. The NVD vector (AV:N/AC:L/PR:N/UI:N/C:H) treats this as a trivially network-exploitable confidentiality break, but that framing is generous: exploitation is contingent on a specific victim coding pattern - instantiating the generator before forking - and on an attacker being able to observe and predict one worker's output to anticipate another's, which is closer to high attack complexity than low. EPSS (0.16%, percentile 5%) and the absence of KEV listing or any POC reinforce that real-world opportunistic exploitation is unlikely; the practical risk is concentrated in applications that both use this module in the vulnerable init-before-fork pattern and rely on its output for security tokens. This is a genuine cryptographic correctness defect worth patching, but it is a 'deployment-dependent, predict-the-stream' issue rather than a drop-everything, mass-exploited bug. Note a data inconsistency: one of the referenced CVE records is CVE-2026-41564, which should be verified against the intended advisory. |
| Exploit ScenarioDerived | A preforking Perl web application creates one Bytes::Random::Secure::Tiny generator at startup, then forks N workers that each serve requests; because every worker inherited identical PRNG state, an attacker who obtains the session token issued by their own worker can predict the tokens other workers issue to other users. No public POC is identified, but the prediction is deterministic once the shared seed's output is observed, making session hijacking or secret forgery feasible against a vulnerable deployment. |
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::Tiny (versions through 1.011) occurs because a PRNG object initialized before a fork() shares its ISAAC engine state across all child processes, causing every child to emit identical 'random' streams. Multiprocess Perl applications (e.g., preforking web servers) that create one generator and reuse it after forking will produce duplicate session tokens, keys, salts, or nonces across workers. Reported by CPANSec with an upstream fix; EPSS is low (0.16%, 5th percentile) and there is no public exploit identified at time of analysis.
RemediationAI
Patch available per vendor advisory; an upstream fix exists as PR #7 plus a MetaCPAN security patch (CVE-2026-11702-r1.patch) that adds PID-based fork detection and re-seeds the PRNG when the process forks - apply the patched build once your distribution publishes a fixed release above 1.011 (no fixed version number is independently confirmed in the available data, so verify the release before pinning). As a code-level workaround until you can upgrade, instantiate the Bytes::Random::Secure::Tiny object inside each child process after fork() rather than in the parent, or explicitly create a fresh generator per worker; this guarantees independent entropy at the cost of slightly higher per-worker seeding overhead. Note that re-seeding does not retroactively fix any secrets already generated by the shared state, so rotate any tokens/keys produced by an affected preforking deployment. References: https://github.com/daoswald/Bytes-Random-Secure-Tiny/pull/7 and https://security.metacpan.org/patches/B/Bytes-Random-Secure-Tiny/1.011/CVE-2026-11702-r1.patch.
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
The module is a dependency-light reimplementation of Bytes::Random::Secure that wraps Math::Random::ISAAC::Embedded seeded from Crypt::Random::Seed::Embedded. The root cause is CWE-335 (Incorrect Usage of Seeds in a PRNG): when new() seeds the ISAAC engine once and the object is then carried across a fork(), the in-memory PRNG state is copied verbatim into each child, so all children deterministically replay the same sequence from the inherited seed. The upstream PR (#7) fixes this by stamping the seeding PID into the object and re-seeding from fresh entropy inside irand() whenever $$ changes - re-seeding at most once per fork - while explicitly leaving thread isolation as caller responsibility. CPE coverage is cpe:2.3:a:davido:bytes::random::secure::tiny:*, all versions up to and including 1.011.
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
Confidentiality-only predictable secrets; AC:H because exploitation needs the victim's init-before-fork pattern and the attacker must predict the shared stream; no attacker privileges, so PR:N.
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
2DescriptionCVE.org
Bytes::Random::Secure::Tiny versions through 1.011 for Perl share internal state across forked processes.
When an object is initialised before forking, 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
Bytes::Random::Secure::Tiny, a Perl library used in web applications, contains a cryptographic flaw causing session tokens and encryption keys to be duplicated across multiple worker processes. Organizations using this library in production environments risk weakened authentication and encryption, potentially compromising session security and user data confidentiality.
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 (versions through 0.29) occurs because the module
EUVD-2026-39641
GHSA-vcwj-3q56-r32w
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB