Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/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
Attacker supplies a tampered identity store whose fingerprint is never re-derived, so the check is trivially bypassed (AC:L); high confidentiality and integrity impact from silent key substitution, but no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/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 before 1.4.9 fails to re-derive and validate fingerprints when loading identities from identity.json, allowing attackers to substitute public keys in identity stores. Attackers can replace legitimate public keys with their own while maintaining the claimed fingerprint, enabling silent key substitution where encryption uses attacker keys and signature verification appears valid.
AnalysisAI
Silent cryptographic key substitution affects openssl_encrypt (the jahlives Python encryption library) before 1.4.9, which loads identities from identity.json without re-deriving and validating their fingerprints. An attacker who can tamper with an identity store can swap in their own public keys while preserving the claimed fingerprint, so the library encrypts data to attacker-controlled keys and treats attacker signatures as valid without any visible warning. …
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 the attacker to substitute public keys inside an identity store loaded from identity.json - that is, the ability to modify, replace, or supply the identity.json file that the victim's openssl_encrypt instance loads. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The published CVSS 4.0 score of 9.3 with vector AV:N/AC:L/PR:N/UI:N/VC:H/VI:H/VA:H reflects a worst-case, network-unauthenticated framing, but the concrete prerequisite - the ability to modify or supply a malicious identity.json - is not clearly a pure remote-no-privilege condition, so the network/no-privilege metrics likely overstate reachability for typical local-file identity stores; verify the deployment's identity-distribution model with the vendor. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | An attacker gains write access to (or controls the distribution of) a victim's identity.json and replaces a legitimate contact's public key with their own, leaving the stored fingerprint unchanged. The victim's openssl_encrypt then encrypts sensitive data to the attacker's key and validates attacker-forged signatures as genuine, all without any warning. … |
| Remediation | Vendor-released patch: 1.4.9 - upgrade openssl_encrypt to 1.4.9 or later, which restores re-derivation and validation of fingerprints when identities are loaded from identity.json (see GHSA-q8p3-7h6h-ghfr). … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours: identify all systems and applications using jahlives and document deployed versions; assess which systems have exposed or inadequately protected identity.json files. …
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
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
Terminal escape-sequence injection in jahlives openssl_encrypt before 1.4.9 lets an attacker embed control characters in
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-67058
GHSA-m2gh-w3fj-x92v