Skip to main content

Bytes::Random::Secure::Tiny CVE-2026-11702

| EUVDEUVD-2026-39641 HIGH
Incorrect Usage of Seeds in Pseudo-Random Number Generator (PRNG) (CWE-335)
2026-06-26 CPANSec GHSA-vcwj-3q56-r32w
7.5
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify preforked Perl app using shared PRNG
  2. Delivery
    Request a secret from attacker-controlled session
  3. Exploit
    Observe predictable random output
  4. Execution
    Reconstruct shared ISAAC stream
  5. Persist
    Predict victim worker's secrets
  6. Impact
    Hijack 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Bytes::Random::Secure::Tiny 0 ≤1.011

Affected Packages

euvd bytes_random_secure_tiny no fix

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

Vendor (CPANSec) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 5.9 MEDIUM

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
SUSE HIGH

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

2
CVSS changed
Jun 26, 2026 - 17:22 NVD
7.5 (HIGH)
CVE Published
Jun 26, 2026 - 08:13 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Low
niche CPAN crypto-random module; modest Perl ecosystem footprint
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Vendor StatusVendor

SUSE

Severity: Important

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy