Description
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.
Metrics
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:NWeakness enumeration
Affected software
| Vendor | Product | Versions |
|---|---|---|
| jahlives | openssl_encrypt | < 1.4.0 |
References
- https://github.com/jahlives/openssl_encrypt/security/advisories/GHSA-cx72-m6xj-3vf6Mitigation, Vendor Advisory
- https://www.vulncheck.com/advisories/openssl-encrypt-before-insecure-random-import-in-pqc-moduleThird Party Advisory
Timeline
- Published
- Aug 17, 2026
- Last modified
- Aug 31, 2026
- NVD status
- Analyzed