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
AV:N reflects that cracking can occur anywhere once files are obtained; AC:H reflects the prerequisite of possessing encrypted artifacts; no integrity or availability impact applies.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
3DescriptionCVE.org
openssl_encrypt versions before 1.4.0 use a non-standard PBKDF2 key derivation construction with iterations=1 per call in an outer loop, creating a KDF whose security properties have not been formally analyzed. Attackers can exploit this weakened key derivation to more efficiently crack passwords protecting legacy encrypted files compared to standard PBKDF2 implementations.
AnalysisAI
Weak key derivation in openssl_encrypt versions prior to 1.4.0 enables accelerated offline password cracking against files encrypted by the library. The jahlives/openssl_encrypt PHP library implements PBKDF2 in a non-standard construction - using iterations=1 per inner call within an outer application loop - a design whose formal security properties have not been analyzed and whose brute-force resistance is materially lower than a correctly parameterized PBKDF2 implementation. No public exploit code has been identified at time of analysis, and the library has not been listed in CISA KEV; exploitation is bounded to attackers who have already obtained the encrypted artifacts.
Technical ContextAI
The affected library is identified by CPE cpe:2.3:a:jahlives:openssl_encrypt:*:*:*:*:*:*:*:* and is a PHP wrapper for OpenSSL encryption that derives keys from user-supplied passwords via PBKDF2. Standard PBKDF2 achieves work-factor hardening by iterating an underlying pseudorandom function (PRF) thousands of times, imposing computational cost on brute-force and dictionary attacks. The vulnerable implementation sets iterations=1 in each inner PBKDF2 call and relies on an outer loop to accumulate work - a non-standard construction that does not provide the same security guarantees as a properly parameterized single-call PBKDF2, because the inner iteration count governs the PRF-chain length that makes each guess expensive. This falls squarely under CWE-327 (Use of a Broken or Risky Cryptographic Algorithm), specifically a case where a recognized standard algorithm is instantiated in a manner that undermines its security model. The ENISA EUVD entry EUVD-2026-60107 and the GitHub advisory GHSA-743f-89fg-x288 both address this construction flaw.
RemediationAI
Upgrade openssl_encrypt to version 1.4.0 or later, which corrects the PBKDF2 key derivation construction per the vendor advisory at https://github.com/jahlives/openssl_encrypt/security/advisories/GHSA-743f-89fg-x288. Importantly, upgrading the library does not retroactively protect files encrypted by prior versions - those artifacts retain the weakened KDF and remain susceptible to accelerated offline cracking if obtained by an attacker. After upgrading, re-encrypt any sensitive data that was encrypted by a vulnerable release to ensure it benefits from the corrected construction. If immediate upgrade is not feasible, restrict filesystem and network access to directories containing openssl_encrypt-produced ciphertext to reduce the probability that an attacker can obtain the encrypted files; note this is a compensating control only and does not remediate the cryptographic weakness itself.
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
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-60107
GHSA-m7fg-4j92-vghm