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/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
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
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/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
Lifecycle Timeline
3DescriptionCVE.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.
AnalysisAI
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. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | 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. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | 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. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | 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. … |
| Remediation | 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). … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours: conduct a complete inventory of systems and applications using openssl_encrypt library, identify all deployed versions, and immediately restrict file access to authorized personnel only. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
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
Sandbox escape in the openssl_encrypt Python library (jahlives) before 1.4.0 lets attacker-supplied plugin code break ou
Insecure PRNG import in the jahlives openssl_encrypt Python package (all versions before 1.4.0) places Python's non-cryp
Arbitrary code execution in openssl_encrypt (the jahlives Python encryption utility) before 1.4.9 allows an attacker-sup
Cryptographic integrity bypass and weak key derivation in the openssl-encrypt Python package (jahlives) before 1.4.9 let
Signature-trust bypass in the openssl_encrypt Python library (PyPI 'openssl-encrypt') versions 1.4.8 and earlier lets an
Fingerprint-verification spoofing in jahlives openssl_encrypt before 1.4.9 lets attackers embed ANSI escape sequences in
Silent cryptographic key substitution in jahlives openssl_encrypt before 1.4.9 lets attackers register 'shadow' contact
Silent cryptographic key substitution affects openssl_encrypt (the jahlives Python encryption library) before 1.4.9, whi
Arbitrary code execution in jahlives openssl_encrypt before 1.4.9 stems from a flawed plugin trust model that uses a den
Signature verification bypass in openssl_encrypt (the jahlives Python encryption library) before version 1.4.9 lets atta
Arbitrary command execution in jahlives' openssl_encrypt before 1.4.9 arises when the tool's 'info' command reconstructs
Same weakness CWE-311 – Missing Encryption of Sensitive Data
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-67044
GHSA-pr7j-w8v9-qr7r