Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain encrypted file via network intercept or storage leak
-
DeliveryOpen file in any hex or text tool
-
ExploitExtract unkeyed SHA-256 hash from cleartext header
-
ExecutionHash candidate plaintexts offline
-
ImpactCompare digests to confirm original plaintext content
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V14 - Data Protection Encryption of sensitive data
|
| Exploitation Conditions | The attacker must obtain a physical or logical copy of at least one encrypted file produced by openssl_encrypt prior to version 1.4.9 - this is the sole prerequisite for extracting the cleartext header hash. No authentication, network-level access to a running service, or special privilege is required beyond file possession. The oracle is most effective against low-entropy or predictable plaintexts; high-entropy random content substantially increases offline brute-force cost. Exploitation is strictly passive information disclosure: the attacker cannot decrypt file contents, modify ciphertext undetected, or execute code. Files never exposed to unauthorized parties are not exploitable, as the flaw is a property of the file format rather than a remotely accessible service endpoint. |
| Impact | The CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H) reflects high confidentiality impact once an attacker has obtained an encrypted file, and is consistent with the passive, zero-prerequisite nature of hash extraction from the file header. The absence of EPSS data and a CISA KEV listing means exploitation frequency cannot be quantified from available signals; no public exploit code has been reported. Real-world risk is highest in deployment patterns where openssl_encrypt-protected files transit potentially hostile networks or are stored on shared infrastructure - scenarios where an adversary can passively collect encrypted files without breaking the underlying cipher. The oracle is most effective against low-entropy plaintexts (short messages, templated documents, known file formats), substantially reducing the brute-force search space for offline confirmation. The vulnerability does not enable decryption, code execution, or integrity compromise, which tempers the urgency compared to a full compromise vector, but the confidentiality impact is genuine and unmitigated by password strength alone. |
| Exploit ScenarioDerived | An attacker who intercepts an encrypted file in transit - or retrieves one from a misconfigured storage location - opens the file header and reads the embedded SHA-256 hash without needing the encryption password. The attacker then hashes candidate plaintexts (e.g., known document templates, short messages, or dictionary words) and compares each digest against the extracted header value, confirming the original content when a match is found. Across a corpus of collected files, matching header hashes also reveal which documents are identical, enabling content-based correlation even across separate encryption sessions. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 27, 2026
openssl_encrypt by jahlives (versions before 1.4.9) embeds an unkeyed SHA-256 digest of each plaintext document into the encrypted file's cleartext header, creating a passive plaintext-confirmation oracle. Any party who possesses an encrypted file - including unauthorized recipients of intercepted or leaked archives - can extract this hash without the encryption password and use it to verify guessed or known plaintexts via offline dictionary attacks. Additionally, because the hash is unkeyed and deterministic, identical source documents encrypted separately under different passwords produce matching header hashes, enabling cross-file correlation and fingerprinting that undermines the confidentiality guarantees users expect from file encryption. No public exploit code has been identified at time of analysis, and this vulnerability does not appear in CISA KEV.
RemediationAI
Upgrade to openssl_encrypt version 1.4.9 or later, which removes the unkeyed SHA-256 hash from the file header; this is confirmed as the fix in GitHub Security Advisory GHSA-7c3q-gp4v-q29q (https://github.com/jahlives/openssl_encrypt/security/advisories/GHSA-7c3q-gp4v-q29q). Upgrading prevents future files from carrying the oracle, but previously encrypted files will permanently retain the vulnerable header - organizations should re-encrypt high-sensitivity archives using the patched version if those files have been exposed to potentially untrusted parties. No configuration flag or runtime workaround exists to suppress the header write in affected versions, since the hash is produced unconditionally during encryption. Restricting access to the encrypted file store at the filesystem or network level reduces the window for passive collection but does not eliminate the flaw in files already distributed.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
openssl_encrypt is a PHP-based file encryption utility authored by jahlives (CPE: cpe:2.3:a:jahlives:openssl_encrypt:*:*:*:*:*:*:*:*) that wraps OpenSSL to provide symmetric file-level encryption. The root cause maps to CWE-311 (Missing Encryption of Sensitive Data): the tool writes a SHA-256 digest of the original plaintext directly into the file header in cleartext form, without any key derivation, HMAC keying, or encryption applied to that digest. Because the hash is unkeyed, it functions as a deterministic fingerprint rather than an authentication tag - it reveals nothing about the key but reveals structural information about the plaintext. This is a cryptographic design flaw rather than an implementation bug: the hash oracle is intentionally written by the encryption routine itself, so all files produced by affected versions carry the leaking header regardless of the password strength used.
Know when Openssl Encrypt 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Encrypted files are network-distributed requiring no credentials to obtain; only confidentiality is impacted via the plaintext hash oracle.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
openssl_encrypt versions before 1.4.9 store an unkeyed SHA-256 hash of the plaintext in the cleartext file header metadata. Attackers can read this hash without the password to confirm guessed plaintexts offline or fingerprint identical plaintexts across separately-encrypted files.
Executive ViewAI
openssl_encrypt (versions <1.4.9) contains a design flaw that leaks confirmable plaintext metadata in every encrypted file, allowing unauthorized parties with access to files to verify guessed passwords offline and correlate encrypted files across your systems. Organizations using this library for sensitive data protection-including archives shared via email, stored in backups, or transmitted over untrusted networks-face elevated confidentiality risk from passive attacks that bypass encryption keys entirely. With no available vendor patch, immediate migration to secure alternatives is critical.
No vendor-released patch identified at time of analysis. Interim mitigations: employ authenticated encryption modes (AES-GCM, ChaCha20-Poly1305) for all new and re-encrypted files instead of openssl_encrypt; enforce principle of least privilege on encrypted file access; implement comprehensive audit logging for encrypted file handling; maintain strict separation between encryption keys and encrypted data; consider air-gapping storage of highly sensitive encrypted archives from networked systems.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Openssl Encrypt
View allArbitrary native code execution in the jahlives openssl_encrypt Python package (all versions before 1.4.0) arises from i
Fingerprint-verification spoofing in jahlives openssl_encrypt before 1.4.9 lets attackers embed ANSI escape sequences in
Sandbox escape in the openssl_encrypt Python library (jahlives) before 1.4.0 allows attacker-supplied plugins to run wit
Arbitrary code execution in jahlives openssl_encrypt before 1.4.0 stems from an inconsistent sandbox: the runtime Plugin
Authentication bypass in the jahlives openssl_encrypt library (all versions before 1.4.0) lets remote unauthenticated at
Authentication brute-force protection can be bypassed in jahlives openssl_encrypt before 1.4.0 because the TOTP rate lim
Sandbox escape in the openssl_encrypt Python library (jahlives) before 1.4.0 lets attacker-supplied plugin code break ou
Cryptographic shared-secret disclosure in the openssl_encrypt Python library (maintainer 'jahlives') before 1.4.0 lets a
Sandbox escape leading to remote code execution affects openssl_encrypt (the jahlives Python package) in all versions be
Arbitrary code execution in openssl_encrypt (the jahlives Python encryption utility) before 1.4.9 allows an attacker-sup
Arbitrary code execution in jahlives openssl_encrypt before 1.4.9 stems from a flawed plugin trust model that uses a den
Sensitive-token exposure in openssl_encrypt (the jahlives Python package, pip 'openssl-encrypt') before 1.4.0 stems from
EUVD-2026-67044
GHSA-pr7j-w8v9-qr7r
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB