Skip to main content

openssl_encrypt EUVDEUVD-2026-67051

| CVE-2026-81695 CRITICAL
Improper Output Neutralization for Logs (CWE-117)
2026-08-27 VulnCheck GHSA-v9v6-j75g-2wmw
9.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Craft file with escape sequences in key_id
  2. Delivery
    Deliver malicious encrypted file to victim
  3. Exploit
    Victim decrypts on vulnerable build
  4. Execution
    Unescaped key_id printed to stderr
  5. Persist
    Terminal repainted, forged verification shown
  6. Impact
    Victim trusts tampered file

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A09:2025 - Security Logging & Alerting Failures
ASVS 5.0
V16 - Security Logging and Error Handling Log output neutralization
Exploitation Conditions

Exploitation requires (1) the victim to run a vulnerable openssl_encrypt version before 1.4.9, (2) the victim to decrypt an attacker-crafted file whose key_id metadata carries ANSI/VT terminal escape sequences, and (3) the output to be rendered in an interactive terminal emulator that interprets those escape sequences during the decrypt key auto-detection phase. Limiting factors: the attacker cannot execute code and gains only terminal-display deception; the attack fails if stderr is redirected to a non-interpreting sink, if control characters are stripped, or if the victim never processes the malicious file - so real impact depends on social engineering and the victim trusting on-screen verification output.

Impact

The supplied CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:N/VC:H/VI:H/VA:H, score 9.3 Critical) overstates real-world impact and is internally inconsistent with the described mechanism. The actual impact is deception via terminal manipulation, not direct compromise of confidentiality, integrity, or availability of the host - so VC:H/VI:H/VA:H is questionable. Critically, the vector marks UI:N, but exploitation inherently requires a victim to decrypt an attacker-supplied file and view the output in an interpreting terminal, which is user interaction and a meaningful limiting factor. There is no EPSS score, no KEV listing, and no published POC in the provided data, indicating a low-probability, opportunistic social-engineering-style issue rather than a mass-exploitable RCE. Verdict: a legitimate integrity/trust-spoofing bug worth patching, but not a drop-everything Critical; the gap between the 9.3 label and the CWE-117 mechanism should be reconciled with the vendor.

Exploit ScenarioDerived

An attacker crafts an openssl_encrypt file whose key_id contains ANSI escape sequences and delivers it to a victim via email attachment, shared repo, or download. When the victim runs decryption on a pre-1.4.9 build, the auto-detection routine prints the malicious key_id to stderr, and the injected sequences repaint the terminal to overwrite genuine output and display a forged 'authenticity verified' block, convincing the victim the file is trustworthy. No public POC is identified at time of analysis, but the technique is well-understood and low-complexity.

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

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

Alert me

AnalysisAIv1 – Aug 27, 2026

Terminal escape-sequence injection in jahlives' openssl_encrypt (a Python OpenSSL-based file encryption utility) before 1.4.9 lets an attacker embed ANSI/VT control sequences in the key_id field of a crafted encrypted file; because the tool prints this attacker-controlled value unescaped to stderr during decrypt key auto-detection, an attacker can repaint the terminal and forge authenticity-verification output to deceive the operator. Any user who decrypts a malicious file is affected. This is a CWE-117 output-neutralization flaw reported by VulnCheck with no public exploit identified at time of analysis and no CISA KEV listing.

RemediationAI

Vendor-released patch: 1.4.9 - upgrade openssl_encrypt to version 1.4.9 or later, per GHSA-jwfm-99h7-2w5x (https://github.com/jahlives/openssl_encrypt/security/advisories/GHSA-jwfm-99h7-2w5x). Until upgraded, do not decrypt untrusted files while viewing output directly in an interactive terminal; instead redirect stderr to a file or pipe through a sanitizer such as 'cat -v' or 'sed' to strip control characters (trade-off: makes diagnostic output harder to read), or run decryption in a non-interpreting log-capture environment that does not render ANSI escapes. Treat the tool's on-screen authenticity/verification messages as untrusted for pre-1.4.9 versions and independently verify file integrity out-of-band (e.g., compare a known-good hash) rather than relying on the terminal display.

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

The affected component is openssl_encrypt (CPE cpe:2.3:a:jahlives:openssl_encrypt), a command-line wrapper around OpenSSL cryptographic primitives that stores metadata such as a key_id inside its encrypted file format. During decryption the tool auto-detects which key to use and echoes the file's key_id to stderr as diagnostic output. The root cause is CWE-117 (Improper Output Neutralization for Logs/output): the key_id string is taken verbatim from the untrusted file and written to a terminal without stripping or escaping control characters. Because terminals interpret ANSI/VT100 escape sequences (cursor movement, color, line clearing, screen repaint), an attacker who controls the key_id can inject sequences that overwrite previously printed lines - including the tool's own authenticity/verification messages - making a tampered or attacker-supplied file appear to have passed integrity checks.

Know when Openssl Encrypt 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 4.3 MEDIUM

Victim must decrypt an attacker file in a terminal (UI:R); impact is limited terminal-output forgery/deception (I:L) with no confidentiality or availability effect and no privileges required.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/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:50 cve.org
CRITICAL 9.3

DescriptionCVE.org

openssl_encrypt versions before 1.4.9 fail to escape attacker-controlled key_id values printed to stderr during decrypt auto-detection. Attackers can craft encrypted files with malicious key_id containing escape sequences to repaint terminal output and forge authenticity verification blocks.

Executive ViewAI

Why It Matters

openssl_encrypt, a Python file encryption utility, contains a critical terminal escape-sequence injection vulnerability (CVE-2026-81695) that enables attackers to spoof authentication indicators and deceive users during file decryption, creating risk of unauthorized data access if operators are manipulated into trusting malicious files. All organizations deploying this tool require immediate action to prevent data breach.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict openssl_encrypt usage to decryption of cryptographically pre-verified files from trusted sources only; deploy the tool exclusively in air-gapped, offline environments to prevent terminal-based social engineering attacks; require manual out-of-band verification of file authenticity before decryption; disable the tool for new encryption operations until patched; implement manual inspection of key_id field contents before processing any file.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Rare
niche single-author GitHub encryption utility, 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.2%
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

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

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2026-74872 CRITICAL
9.3 Aug 17

Arbitrary native code execution in the jahlives openssl_encrypt Python package (all versions before 1.4.0) arises from i

CVE-2026-81707 CRITICAL
9.3 Aug 27

Fingerprint-verification spoofing in jahlives openssl_encrypt before 1.4.9 lets attackers embed ANSI escape sequences in

CVE-2026-74895 CRITICAL
9.3 Aug 17

Sandbox escape in the openssl_encrypt Python library (jahlives) before 1.4.0 allows attacker-supplied plugins to run wit

CVE-2026-74886 CRITICAL
9.3 Aug 17

Arbitrary code execution in jahlives openssl_encrypt before 1.4.0 stems from an inconsistent sandbox: the runtime Plugin

CVE-2026-74894 CRITICAL
9.3 Aug 17

Authentication bypass in the jahlives openssl_encrypt library (all versions before 1.4.0) lets remote unauthenticated at

CVE-2026-74878 CRITICAL
9.3 Aug 17

Authentication brute-force protection can be bypassed in jahlives openssl_encrypt before 1.4.0 because the TOTP rate lim

CVE-2026-74899 CRITICAL
9.3 Aug 17

Sandbox escape in the openssl_encrypt Python library (jahlives) before 1.4.0 lets attacker-supplied plugin code break ou

CVE-2026-74900 CRITICAL
9.3 Aug 17

Cryptographic shared-secret disclosure in the openssl_encrypt Python library (maintainer 'jahlives') before 1.4.0 lets a

CVE-2026-74896 CRITICAL
9.3 Aug 17

Sandbox escape leading to remote code execution affects openssl_encrypt (the jahlives Python package) in all versions be

CVE-2026-81719 CRITICAL
9.3 Aug 27

Arbitrary code execution in openssl_encrypt (the jahlives Python encryption utility) before 1.4.9 allows an attacker-sup

CVE-2026-81701 CRITICAL
9.3 Aug 27

Arbitrary code execution in jahlives openssl_encrypt before 1.4.9 stems from a flawed plugin trust model that uses a den

CVE-2026-74880 CRITICAL
9.3 Aug 17

Sensitive-token exposure in openssl_encrypt (the jahlives Python package, pip 'openssl-encrypt') before 1.4.0 stems from

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