CVE-2026-18536 Overview
CVE-2026-18536 affects the Data::Entropy Perl module in versions before 0.010. The module retrieves remote entropy from Data::Entropy::RawSource::RandomOrg and Data::Entropy::RawSource::RandomnumbersInfo over plain HTTP. An on-path attacker can substitute the response and control the bytes returned by rand_bits and rand_int for any application configured via with_entropy_source. The Data::Entropy::RawSource::RandomOrg integrity check trivially matches any non-empty byte string, providing no protection against tampering. The _checkbuf method response is equally attacker-controlled, so retry and sleep behavior is also steerable. This flaw is tracked under [CWE-319] Cleartext Transmission of Sensitive Information.
Critical Impact
Attackers on the network path can deterministically control random values used by Perl applications relying on these entropy sources, undermining cryptographic keys, nonces, tokens, and any security-sensitive randomness.
Affected Products
- Data::Entropy Perl module versions before 0.010
- Applications using Data::Entropy::RawSource::RandomOrg
- Applications using Data::Entropy::RawSource::RandomnumbersInfo
Discovery Timeline
- 2026-08-01 - CVE-2026-18536 published to NVD
- 2026-08-03 - Last updated in NVD database
Technical Details for CVE-2026-18536
Vulnerability Analysis
The Data::Entropy module provides pluggable entropy sources for Perl applications. Two of those sources, RandomOrg and RandomnumbersInfo, fetch bytes from remote services over plain HTTP. Because HTTP offers no confidentiality or integrity, any adversary sitting on the network path observes and rewrites the response body at will.
Applications that call with_entropy_source and then invoke rand_bits or rand_int receive whatever bytes the attacker chose to inject. When those bytes seed cryptographic keys, session identifiers, CSRF tokens, or password salts, the resulting values become predictable to the attacker.
The module's _checkbuf control channel travels over the same cleartext transport, so an attacker also dictates retry and sleep timing. This gives adversaries a stable, repeatable channel to shape application behavior.
Root Cause
The root cause is the use of an unauthenticated, unencrypted transport for security-sensitive data ([CWE-319]). The RandomOrg source additionally implements an integrity check that accepts any non-empty byte string, providing the appearance of validation without any real cryptographic assurance. Together, these design choices leave the entropy stream fully under attacker control on hostile networks.
Attack Vector
An attacker with a position on the network path between the victim application and random.org or randomnumbers.info intercepts the HTTP request and returns crafted bytes. Positions include open Wi-Fi networks, compromised ISPs, captive portals, and hostile egress proxies. No authentication, user interaction, or local access is required. The attack is repeatable and silent, since the client accepts the response without transport validation.
Refer to the GitHub Security Advisory and the MetaCPAN Security Guide for further technical detail.
Detection Methods for CVE-2026-18536
Indicators of Compromise
- Outbound plain HTTP requests from Perl processes to www.random.org or www.randomnumbers.info
- Perl dependency manifests pinning Data-Entropy versions below 0.010
- Applications invoking with_entropy_source, rand_bits, or rand_int in code paths that generate cryptographic material
Detection Strategies
- Inventory installed CPAN modules and flag any Data::Entropy release earlier than 0.010.
- Inspect source repositories for imports of Data::Entropy::RawSource::RandomOrg and Data::Entropy::RawSource::RandomnumbersInfo.
- Alert on egress HTTP (port 80) traffic to the affected remote entropy providers from application servers.
Monitoring Recommendations
- Log DNS resolutions and TCP connections to random.org and randomnumbers.info domains from production hosts.
- Monitor TLS-versus-cleartext ratios for outbound traffic from application tiers handling secrets.
- Track CPAN package updates and vulnerability advisories through the OpenWall OSS-Security discussion.
How to Mitigate CVE-2026-18536
Immediate Actions Required
- Upgrade Data::Entropy to version 0.010 or later on every host running Perl applications.
- Audit application code for calls to with_entropy_source targeting the affected remote sources and switch to local OS entropy.
- Rotate cryptographic keys, tokens, and secrets generated on vulnerable hosts if exposure to hostile networks was possible.
Patch Information
Version 0.010 of the module addresses the issue. See the MetaCPAN Version Change Log and the MetaCPAN Module Status for maintainer guidance. The maintainer additionally recommends using operating system entropy sources rather than remote network services.
Workarounds
- Replace Data::Entropy::RawSource::RandomOrg and Data::Entropy::RawSource::RandomnumbersInfo with a local source backed by /dev/urandom or Crypt::URandom.
- Block outbound plain HTTP to random.org and randomnumbers.info at the egress firewall until the upgrade is complete.
- Force HTTPS for any code paths that must retrieve remote entropy, and validate certificate chains.
# Configuration example
cpanm Data::Entropy@0.010
# Verify installed version
perl -MData::Entropy -e 'print $Data::Entropy::VERSION, "\n"'
# Egress block for legacy HTTP entropy endpoints (iptables example)
iptables -A OUTPUT -p tcp --dport 80 -d www.random.org -j REJECT
iptables -A OUTPUT -p tcp --dport 80 -d www.randomnumbers.info -j REJECT
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

