Skip to main content

openssl_encrypt CVE-2026-81700

| EUVDEUVD-2026-67056 CRITICAL
Improper Verification of Cryptographic Signature (CWE-347)
2026-08-27 VulnCheck GHSA-8379-29x8-jjmf
9.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain revoked or expired trusted signing key
  2. Delivery
    Sign malicious plugin with that key
  3. Exploit
    Deliver plugin to victim loader
  4. Execution
    verify_detached accepts VALIDSIG only
  5. Persist
    Malicious plugin executes in host process
  6. Impact
    Full 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.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

openssl_encrypt 0 <1.4.9

Affected Packages

pypi openssl-encrypt fix: 1.4.9

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

Vendor (VulnCheck) PRIMARY 9.3 CRITICAL
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
vuln.today AI 8.1 HIGH

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 27, 2026 - 18:02 EUVD
CVE Published
Aug 27, 2026 - 14:51 cve.org
CRITICAL 9.3

DescriptionCVE.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

Why It Matters

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.

Business Impact: Severe
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

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Rare
niche single-maintainer Python encryption library, minimal enterprise footprint
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2013-3900 MEDIUM
5.5 Dec 11

Why is Microsoft republishing a CVE from 2013? We are republishing CVE-2013-3900 in the Security Update Guide to update

CVE-2026-48558 CRITICAL POC
9.5 Jun 12

Authentication bypass in SimpleHelp 5.5.15 and prior (plus 6.0 pre-release builds) allows remote unauthenticated attacke

CVE-2026-5430 CRITICAL POC
10.0 Aug 06

Authentication bypass in WSO2 API Manager and related components (Universal Gateway, Traffic Manager, API Control Plane,

CVE-2025-59718 CRITICAL
9.8 Dec 09

Authentication bypass in Fortinet FortiOS, FortiProxy, and FortiSwitchManager allows unauthenticated remote attackers to

CVE-2025-25291 CRITICAL POC
9.3 Mar 12

ruby-saml provides security assertion markup language (SAML) single sign-on (SSO) for Ruby. Rated critical severity (CVS

CVE-2026-47304 CRITICAL POC
9.8 Jul 14

Security feature bypass in Microsoft .NET (shipped via Visual Studio 2022 17.12/17.14 and Visual Studio 2026 18.7) lets

CVE-2025-25292 CRITICAL POC
9.3 Mar 12

ruby-saml provides security assertion markup language (SAML) single sign-on (SSO) for Ruby. Rated critical severity (CVS

CVE-2022-25898 CRITICAL POC
9.8 Jul 01

The package jsrsasign before 10.5.25 are vulnerable to Improper Verification of Cryptographic Signature when JWS or JWT

CVE-2026-107722 CRITICAL POC
9.8 Oct 08

Authentication and authorization bypass in fast-jwt 6.2.0 through 6.2.4 (npm, NearForm) lets a remote, unauthenticated a

CVE-2024-42004 CRITICAL POC
9.8 Dec 18

A library injection vulnerability exists in Microsoft Teams (work or school) 24046.2813.2770.1094 for macOS. Rated criti

CVE-2024-41145 CRITICAL POC
9.8 Dec 18

A library injection vulnerability exists in the WebView.app helper app of Microsoft Teams (work or school) 24046.2813.27

CVE-2024-41138 CRITICAL POC
9.8 Dec 18

A library injection vulnerability exists in the com.microsoft.teams2.modulehost.app helper app of Microsoft Teams (work

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy