Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain revoked or expired trusted signing key
-
DeliverySign malicious plugin with that key
-
ExploitDeliver plugin to victim loader
-
Executionverify_detached accepts VALIDSIG only
-
PersistMalicious plugin executes in host process
-
ImpactFull code execution and data compromise
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Signature verification
|
| Exploitation Conditions | Exploitation requires that the attacker control a GPG signing key that the victim's keyring already trusts AND that is now in a revoked or expired state - specifically a compromised-then-revoked signing key or an expired project key - because the bug is that verify_detached accepts precisely these otherwise-invalid keys. The attacker must also be able to get the target to load a plugin whose detached signature is checked by the vulnerable gpg_runner.verify_detached path. What LIMITS exploitation: the key must have been previously valid/trusted (an attacker cannot use an arbitrary self-generated untrusted key, since that would not produce VALIDSIG), and the deployment must actually use openssl_encrypt's GPG-signed plugin verification to make a trust decision; installations that do not load externally supplied signed plugins are not exposed. No target-side authentication or user interaction is required per the CVSS vector (PR:N/UI:N). |
| Impact | The signals are mostly aligned toward a genuinely serious flaw, with one important nuance. The CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:N with VC:H/VI:H/VA:H) describes an unauthenticated, network-reachable path to full confidentiality, integrity, and availability compromise via code execution in the host process, which supports the 9.3 rating. The tempering factor absent from the raw vector is the real prerequisite: an attacker must hold a signing key that was once trusted by the victim and is now revoked or expired - this is a meaningful gate, though revoked public keys are frequently recoverable and expired project keys are common, so the barrier is lower than it first appears. There is no EPSS score, no POC, and no KEV entry in the provided data, so exploitation is currently theoretical rather than observed; this suggests the risk is elevated by exposure and impact rather than by demonstrated in-the-wild activity, and even a mid-sized operator that ships plugins signed by rotating or retired project keys should treat this as urgent because their older signatures may now verify against exactly the kind of expired key this bug accepts. Overall this is a real priority for anyone relying on openssl_encrypt's plugin signature gate for a security decision, not merely a high-CVSS-but-low-real-risk finding - but it is not (yet) evidence of active exploitation. |
| Exploit ScenarioDerived | An attacker obtains a signing key that a target's openssl_encrypt deployment previously trusted - for example a project key that has since expired, or a compromised key that was subsequently revoked - and uses it to sign a malicious plugin. They deliver that plugin through whatever channel the application loads plugins from; because verify_detached only checks for VALIDSIG and ignores the revocation/expiry status, the signature is accepted and the malicious plugin executes in the host process. No public POC is identified at time of analysis, and the low attack complexity means no additional exploitation hurdles once a suitable revoked or expired key is in hand. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 27, 2026
Signature verification bypass in openssl_encrypt (the jahlives Python encryption library) before version 1.4.9 lets attackers who possess a revoked or expired-but-formerly-trusted GPG signing key defeat plugin authenticity checks and run malicious code in the host process. The flaw lives in gpg_runner.verify_detached, which treats a VALIDSIG status line as success while ignoring REVKEYSIG, EXPKEYSIG, and gpg's own exit code. No public exploit has been identified at time of analysis, and it is not listed in CISA KEV, but the network-reachable, unauthenticated CVSS 4.0 score of 9.3 marks it as high priority for any deployment that loads signed plugins.
RemediationAI
Vendor-released patch: upgrade to openssl_encrypt 1.4.9 or later, which corrects gpg_runner.verify_detached to inspect REVKEYSIG, EXPKEYSIG, and the gpg exit code in addition to VALIDSIG, per the advisory GHSA-x38r-8wf3-q9hq (https://github.com/jahlives/openssl_encrypt/security/advisories/GHSA-x38r-8wf3-q9hq). Until you can upgrade, the effective compensating control is to stop trusting the built-in signature gate as a security boundary: disable or block dynamic loading of GPG-signed plugins from untrusted or externally supplied sources, and instead validate plugins out of band by running 'gpg --verify' yourself and checking the exit code (non-zero must fail closed). Additionally, proactively remove revoked and expired keys from the keyring the application consults so that no revoked/expired key can produce a VALIDSIG line - the trade-off is that legitimately expired-but-renewed project keys must be re-issued, which may temporarily break loading of otherwise-valid plugins until keys are rotated. Cross-check the exact fixed version against the VulnCheck advisory (https://www.vulncheck.com/advisories/openssl-encrypt-before-1.4.9-gpg-signature-verification-bypass) before deploying.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
openssl_encrypt shells out to GnuPG through a wrapper (gpg_runner) to validate detached signatures on plugins before loading them. GPG communicates verification results via status-fd lines: VALIDSIG confirms a cryptographically well-formed signature, but REVKEYSIG and EXPKEYSIG explicitly flag that the signing key has been revoked or has expired, and the process exit code independently signals overall trust failure. The verify_detached routine parses only for VALIDSIG and never inspects the revocation/expiry status lines or the gpg exit code, so a signature made by a revoked or expired key is accepted as valid. This is a textbook CWE-347 (Improper Verification of Cryptographic Signature) - the signature math is correct, but the trust/validity state of the key is not enforced. The single affected package is cpe:2.3:a:jahlives:openssl_encrypt (a Python distribution), not the OpenSSL project itself despite the similar name.
Know when Jwt Attack gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
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
Network-reachable code execution with no target-side auth or UI (PR:N/UI:N), but AC:H because the attacker must first obtain a formerly-trusted revoked or expired signing key; full CIA impact via host-process code execution.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
openssl_encrypt versions before 1.4.9 contain a signature verification vulnerability in gpg_runner.verify_detached that accepts revoked and expired keys by only checking VALIDSIG status without inspecting REVKEYSIG, EXPKEYSIG, or gpg exit codes. Attackers holding compromised-then-revoked signing keys or expired project keys can bypass signature verification to execute malicious plugins in the host process.
Executive ViewAI
The jahlives Python encryption library contains a critical flaw in plugin signature verification that allows attackers to bypass authenticity checks and execute arbitrary code within enterprise systems. Organizations relying on jahlives for plugin security face immediate risk of code injection and supply-chain compromise without urgent compensating controls.
Disable plugin-loading functionality where operationally feasible. Restrict plugin sources to air-gapped, pre-validated repositories. Implement independent monitoring of GPG key revocation status outside the jahlives library. Monitor for unexpected process execution from plugin loaders. Monitor vendor communications for jahlives version 1.4.9 or later; apply immediately when available.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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
Security feature bypass in Microsoft .NET (shipped via Visual Studio 2022 17.12/17.14 and Visual Studio 2026 18.7) lets
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
Authentication and authorization bypass in fast-jwt 6.2.0 through 6.2.4 (npm, NearForm) lets a remote, unauthenticated a
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
EUVD-2026-67056
GHSA-8379-29x8-jjmf
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB