Read the docs
TI-2026-66474 Aliases GHSA-vfgx-5q85-58q3

openssl-encrypt has non-cryptographic PRNG used for steganography pixel selection

Priority LOW 38CWE-330Published · Updated

Key facts

Attack vector
—
Privileges required
—
User interaction
—
Attack complexity
—
Impact type
—
Confidentiality · integrity · availability
—
Fix status
Fixed

No CVSS vector from any source. Fix status from GitHub.

Summary

### Summary The `generate_pseudorandom_sequence()` function in `openssl_encrypt/plugins/steganography/core/utils.py` at **lines 89-91** uses Python's `random` module (Mersenne Twister) for steganographic pixel/sample selection. ### Affected Code ```python random.seed(seed) sequence = random.sample(range(max_value), min(length, max_value)) return sequence ``` Additionally, the steganography password is stored as a plain Python string (not `SecureBytes`) and only 8 bytes (64 bits) of the SHA-256 hash are used for the seed, reducing effective security to 64 bits. ### Impact The Mersenne Twister's state can be recovered from approximately 624 outputs. An attacker who knows or guesses the password can predict the PRNG sequence and determine exactly which pixels contain hidden data, potentially extracting the hidden data without the password. ### Recommended Fix - Use HMAC-DRBG or `secrets` module for cryptographically secure pixel selection - Use full 32-byte SHA-256 output as seed material - Store the password in `SecureBytes` instead of a plain string ### Fix Fixed in commit `09e96e0` on branch `releases/1.4.x` — replaced random.seed(hash(password)) with HMAC-SHA256 based CSPRNG (Fisher-Yates shuffle) and numpy Generator with HMAC-derived seeds across all steganography format modules.

Why it matters now

Fix Fixed openssl-encrypt (PyPI): 1.4.0

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
—openssl-encrypt (PyPI)before 1.4.01.4.0Patch availableGHSA-vfgx-5q85-58q3
  • openssl-encrypt (PyPI) Vendor— Affected before 1.4.0 Fixed in 1.4.0 Patch available GHSA-vfgx-5q85-58q3

Remediation

  • Fix · GHSA-vfgx-5q85-58q3 openssl-encrypt (PyPI) Fixed in 1.4.0 Advisory →

Timeline

  1. 2026-10-03 Threatist record created from GHSA-vfgx-5q85-58q3

References

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences