Severity by source
CVSS:4.0/AV:L/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:L for offline cracking operation; AC:H because exploitation requires specific non-default single-KDF configuration; PR:N as cracking needs no target system privileges; C:H as passwords become recoverable.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
CVSS:4.0/AV:L/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.6 contain a key derivation flaw in sequential XOR composition mode where the last stage cancels out during key generation. When configured with a single KDF and no prior hashing stage, attackers can bypass memory-hard key derivation and perform offline password cracking at SHA-256 speed instead of the configured KDF cost.
AnalysisAI
Key derivation bypass in jahlives/openssl_encrypt PHP library before 1.4.6 allows offline password cracking at SHA-256 speed against credentials derived under the flawed sequential XOR composition mode. An algebraic cancellation in the key generation routine causes the memory-hard KDF's final stage to nullify itself, stripping the configured computational cost entirely and collapsing security to that of a single SHA-256 hash. …
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 | Exploitation requires two independent prerequisites: first, the target application must use jahlives/openssl_encrypt specifically in sequential XOR composition mode with exactly one KDF stage and no prior hashing stage - this is the precise configuration that triggers the algebraic cancellation and is not confirmed to be the default mode; second, the attacker must have independently obtained the encrypted or derived credential material through a separate compromise vector (database exfiltration, backup exposure, storage breach). … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The CVSS 4.0 score of 6.9 with AV:L reflects that the attack is an offline, local operation - the attacker must first obtain ciphertext or derived key material through a separate breach vector before exploiting the KDF weakness. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | An attacker who has exfiltrated a PHP application's password database - for example, via a SQL injection vulnerability or exposed backup file - determines that the application used jahlives/openssl_encrypt in single-KDF sequential XOR mode. Because the memory-hard KDF's last stage cancels out, the attacker's GPU cracking rig treats each candidate as a plain SHA-256 computation, reaching billions of attempts per second rather than the thousands-per-second rate the KDF was designed to impose, and recovers user passwords in a fraction of the intended time. … |
| Remediation | Upgrade jahlives/openssl_encrypt to version 1.4.6 or later, which corrects the sequential XOR key composition flaw; the vendor advisory is at https://github.com/jahlives/openssl_encrypt/security/advisories/GHSA-vxf9-vwp6-2w43 with additional technical context at https://www.vulncheck.com/advisories/openssl-encrypt-before-kdf-bypass-via-sequential-xor. … Detailed patch versions, workarounds, and compensating controls in full report. |
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
Authentication bypass in the openssl_encrypt Python library (versions before 1.4.0) lets attackers who can tamper with c
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
Sandbox escape in the openssl_encrypt Python library (jahlives) before 1.4.0 allows attacker-supplied plugins to run wit
Authentication bypass in the jahlives openssl_encrypt library (all versions before 1.4.0) lets remote unauthenticated at
Integrity-protection bypass in the jahlives openssl_encrypt Python library (all versions before 1.4.0) lets an attacker
Weak cryptographic key derivation in the openssl_encrypt Python library (all versions before 1.4.0) stems from its key-n
Arbitrary code execution in jahlives openssl_encrypt before 1.4.0 stems from an inconsistent sandbox: the runtime Plugin
Audit-trail corruption and a security-control race condition in the Python library openssl_encrypt (by jahlives) before
Same technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-60090
GHSA-pj8r-rv9w-cfg8