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
AV:N since bundle data can arrive remotely and PR:N as no auth is intrinsic, but AC:H because exploitation requires the app to use the unverified from_dict()->to_identity() path; A:N since impact is secret disclosure/crypto-integrity, not availability.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
4DescriptionCVE.org
openssl_encrypt versions before 1.4.0 contain a vulnerability in PublicKeyBundle.from_dict() that creates key bundles from untrusted data without verifying signatures. Attackers can call from_dict() followed by to_identity() without signature verification to encrypt data using attacker-controlled public keys, leaking secrets.
AnalysisAI
Secret disclosure affects the openssl_encrypt Python library (all versions before 1.4.0), where PublicKeyBundle.from_dict() constructs key bundles from untrusted serialized data without validating the embedded self-signature, and to_identity() then promotes that unverified bundle into a usable Identity. An application that deserializes an attacker-supplied bundle and encrypts to it - without an intervening verify_signature() call - will encrypt secrets to an attacker-controlled public key, allowing the attacker to decrypt them. Reported by VulnCheck and fixed in 1.4.0; no public exploit has been identified at time of analysis.
Technical ContextAI
openssl_encrypt is a pip-distributed Python encryption library (CPE cpe:2.3:a:jahlives:openssl_encrypt) that wraps public-key operations behind serializable key bundles. The root cause is CWE-347 (Improper Verification of Cryptographic Signature): PublicKeyBundle.from_dict() in openssl_encrypt/modules/key_bundle.py (lines 329-361) explicitly documents that it does NOT verify the signature and expects callers to invoke verify_signature() afterward, but to_identity() (lines 363-391) can convert an unverified bundle straight into an Identity with no enforcement. This is a classic 'insecure-by-default API / trust-boundary' flaw: the safe consumer path in key_resolver.py (lines 146-147) does verify before use, but the raw from_dict()->to_identity() sequence remains directly callable, so security depends entirely on downstream discipline rather than on the library enforcing verification.
RemediationAI
Vendor-released patch: upgrade to openssl_encrypt 1.4.0, which fixes the issue in commit f4a1ba6 (branch releases/1.4.x) by making from_dict() verify the self-signature by default via a verify=True parameter and raise ValueError on failure; upgrade with 'pip install --upgrade openssl-encrypt>=1.4.0'. If you cannot upgrade immediately, the concrete compensating control is to never call PublicKeyBundle.from_dict() followed by to_identity() on untrusted data without an explicit verify_signature() check in between - route all bundle handling through the already-safe key_resolver.py path (which verifies at lines 146-147), and treat any deserialized bundle as untrusted until verification succeeds; the trade-off is that this relies on code-review discipline and audit of every call site rather than a library-enforced guarantee, so it is strictly weaker than upgrading. Reference the advisory at https://github.com/jahlives/openssl_encrypt/security/advisories/GHSA-8h88-gxp3-j7pg and the fix commit https://github.com/jahlives/openssl_encrypt/commit/f4a1ba660063cd9e17883829e5272a248525a16b.
More in Jwt Attack
View allWhy is Microsoft republishing a CVE from 2013? We are republishing CVE-2013-3900 in the Security Update Guide to update
Authentication bypass in SimpleHelp 5.5.15 and prior (plus 6.0 pre-release builds) allows remote unauthenticated attacke
Authentication bypass in WSO2 API Manager and related components (Universal Gateway, Traffic Manager, API Control Plane,
Authentication bypass in Fortinet FortiOS, FortiProxy, and FortiSwitchManager allows unauthenticated remote attackers to
ruby-saml provides security assertion markup language (SAML) single sign-on (SSO) for Ruby. Rated critical severity (CVS
ruby-saml provides security assertion markup language (SAML) single sign-on (SSO) for Ruby. Rated critical severity (CVS
The package jsrsasign before 10.5.25 are vulnerable to Improper Verification of Cryptographic Signature when JWS or JWT
A library injection vulnerability exists in Microsoft Teams (work or school) 24046.2813.2770.1094 for macOS. Rated criti
A library injection vulnerability exists in the WebView.app helper app of Microsoft Teams (work or school) 24046.2813.27
A library injection vulnerability exists in the com.microsoft.teams2.modulehost.app helper app of Microsoft Teams (work
The Ruby SAML library is for implementing the client side of a SAML authorization. Rated critical severity (CVSS 9.8), t
cosign is a container signing and verification utility. Rated critical severity (CVSS 9.8), this vulnerability is remote
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-60095
GHSA-723w-crw6-p9hx