Severity by source
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Shipped code never calls the PRNG so present impact is near-zero; I score only the latent confidentiality hazard as C:L with AC:H (needs future misuse plus ~624-output state recovery), not the published 9.3.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
5DescriptionCVE.org
openssl_encrypt before 1.4.0 imports Python's non-cryptographic 'random' module (Mersenne Twister PRNG) at line 15 of openssl_encrypt/modules/pqc.py. No direct calls to random.* were present in the code, so no cryptographic operation is currently affected; however, the import creates a hazard that future code could inadvertently use random.randint() instead of a cryptographically secure alternative (secrets/os.urandom), producing predictable values since the Mersenne Twister state can be recovered from approximately 624 outputs. Fixed by removing the import in 1.4.0.
Articles & Coverage 2
AnalysisAI
Insecure PRNG import in the jahlives openssl_encrypt Python package (all versions before 1.4.0) places Python's non-cryptographic 'random' module (Mersenne Twister) into openssl_encrypt/modules/pqc.py, though the code makes no calls to it, so no cryptographic operation is presently weakened. VulnCheck reported this as a latent hazard: the import invites future maintainers to reach for random.randint() instead of secrets/os.urandom, which would yield predictable values recoverable from ~624 outputs. There is no public exploit identified at time of analysis and it is not on CISA KEV; the flaw was fixed by removing the import in version 1.4.0.
Technical ContextAI
The affected component is a Python cryptographic wrapper library (cpe:2.3:a:jahlives:openssl_encrypt) whose post-quantum crypto helper module (modules/pqc.py) imports the standard-library 'random' module at line 15. Python's 'random' is backed by the Mersenne Twister (MT19937) deterministic PRNG, whose full 19937-bit internal state can be reconstructed from roughly 624 consecutive 32-bit outputs, after which all future outputs are predictable. This maps to CWE-338 (Use of Cryptographically Weak PRNG): the correct primitives for key/nonce/salt generation are the 'secrets' module or os.urandom (CSPRNGs seeded from the OS entropy pool). Critically, per the description the module contains only the import with no random.* invocations, so the weakness is architectural/potential rather than an active cryptographic defect in shipped code.
RemediationAI
Upgrade to openssl_encrypt 1.4.0 or later - Vendor-released patch: 1.4.0, which removes the offending 'random' import from modules/pqc.py per the GitHub Security Advisory GHSA-cx72-m6xj-3vf6 (https://github.com/jahlives/openssl_encrypt/security/advisories/GHSA-cx72-m6xj-3vf6). Because there are no random.* calls in vulnerable versions, no functional cryptographic behavior changes on upgrade and there is no runtime compensating control needed to block exploitation of shipped code; the practical action is simply to update the dependency and, if maintaining a fork, audit the module to confirm all key/nonce/salt generation uses 'secrets' or os.urandom rather than 'random'. For organizations unable to upgrade immediately, the low real-world risk means it can be scheduled as routine dependency maintenance, while adding a static-analysis/lint rule (e.g., flag any use of the 'random' module in crypto modules) prevents the latent hazard from becoming a live one.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-60106
GHSA-j466-q253-mxp8