Skip to main content

openssl-encrypt CVE-2026-81694

| EUVDEUVD-2026-67050 CRITICAL
Improper Output Neutralization for Logs (CWE-117)
2026-08-27 VulnCheck GHSA-9grr-c5h5-3w4h
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 filenames with ANSI erase/cursor bytes
  2. Delivery
    Plant them on a tampered drive
  3. Exploit
    Victim runs verify-usb (<=1.4.8)
  4. Execution
    Control bytes repaint terminal output
  5. Impact
    Forged PASSED verdict masks tamper detection

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 all of the following concrete conditions: (1) the attacker can control filenames on a drive that the victim will scan - these names live outside the AES-GCM authenticated manifest and are not integrity-protected; (2) the victim runs the specific verify-usb command of openssl-encrypt version <= 1.4.8 against that attacker-influenced drive; and (3) the victim views the command's output in a terminal emulator that interprets ANSI/VT100 cursor-movement and erase-line control bytes. Limiting factors: the attack is a display-spoofing deception only (no code execution, no data disclosure), it depends on the victim actively running verify-usb and reading interactive terminal output, and it fails if output is captured to a plain log, piped through a control-character sanitizer, or viewed in a non-interpreting viewer. Despite the provided vector's PR:N/UI:N, the described mechanics imply attacker-supplied drive data plus victim action, so the practical prerequisites are narrower than a remote unauthenticated attack.

Impact

The supplied CVSS 4.0 score of 9.3 (VC:H/VI:H/VA:H, AV:N) substantially overstates the real technical impact of this bug and should be treated with caution. The actual weakness is CWE-117 output injection whose sole effect is to repaint a forged verdict on a terminal - there is no confidentiality loss, no availability loss, and no code execution, so high C/I/A ratings are not supported by the description. The 'AV:N/PR:N/UI:N' portion of the vector also conflicts with the described mechanics: exploitation requires the victim to run verify-usb against attacker-supplied drive data and to view the result in an escape-sequence-interpreting terminal, which is closer to local delivery with user interaction than to remote unauthenticated attack - verify with the vendor. There is no CISA KEV listing, no EPSS value supplied, and no POC referenced, so this is a low-probability, targeted deception scenario rather than a mass-exploitation threat. That said, the consequence class matters for anyone who relies on verify-usb as a security control: a spoofed PASSED verdict could cause an operator to trust a tampered drive, so teams using this tool for integrity attestation should still patch promptly even though the raw 9.3 headline number overstates the danger. Net assessment: high-severity-on-paper, moderate-real-risk, narrow prerequisites.

Exploit ScenarioDerived

An attacker prepares a USB drive (or other removable medium) whose files carry names embedding terminal cursor-movement and erase-line escape sequences alongside real tampering of the drive's contents. When a victim runs 'verify-usb' on that drive with a version <= 1.4.8, the tool's genuine tamper-detection output is visually overwritten by a forged 'PASSED' line, so the operator accepts a compromised drive as authentic. No public POC is referenced, and exploitation depends on local delivery of the malicious drive plus the victim viewing output in an ANSI-interpreting terminal.

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

Verdict spoofing in the openssl-encrypt pip package (versions <= 1.4.8) lets an attacker who controls the contents of a scanned drive forge a PASSED tamper-check result. Because filenames read from untrusted drive data are printed by the verify-usb command without neutralizing terminal control bytes, crafted names containing cursor-movement and erase-line sequences can repaint the screen to hide genuine tamper detection. There is no public exploit identified at time of analysis and it is not in CISA KEV; the issue is fixed in 1.4.9, which routes drive-derived names through sanitize_for_display().

RemediationAI

Upgrade to openssl-encrypt 1.4.9 or later, which is the vendor-released patch and neutralizes the issue by passing drive-derived filenames through sanitize_for_display() before printing (pip install --upgrade openssl-encrypt). Until you can upgrade, avoid running the verify-usb command against untrusted or attacker-reachable drives, and if you must inspect an untrusted drive, pipe the command output through a control-character stripper (for example 'cat -v' or 'sed' to strip ESC 0x1b sequences) or redirect output to a plain file and review it in an editor that renders escape bytes literally rather than in an interactive terminal - the trade-off is reduced readability and manual review overhead. Do not treat a PASSED verdict from an unpatched version as trustworthy for any drive whose filenames you do not control. Refer to the GitHub advisory GHSA-c793-rj9w-r3wg and the VulnCheck advisory for authoritative guidance.

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 is a Python file-encryption utility (CPE cpe:2.3:a:jahlives:openssl_encrypt) that offers a verify-usb command to check whether files on a drive match an AES-GCM authenticated manifest. The flaw is a classic CWE-117 (Improper Output Neutralization) issue: filenames are read from the drive filesystem, which lives OUTSIDE the AES-GCM authenticated manifest and is therefore fully attacker-controllable, and are then echoed to the terminal verbatim. ANSI/VT100 escape sequences embedded in those filenames (e.g. cursor-up, carriage-return, erase-line) are interpreted by the terminal emulator rather than displayed literally, allowing the output stream itself to overwrite prior lines. This is an output-integrity / display-spoofing weakness, not a memory-safety or code-execution bug - the cryptographic verification still works correctly under the hood; only the human-readable rendering of its result is subverted.

Know when OpenSSL 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 5.5 MEDIUM

Attacker-supplied local drive data (AV:L) plus a victim who must run verify-usb and view terminal output (UI:R); impact is defeating the integrity verdict (I:H) with no confidentiality or availability effect.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/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 (pip package, versions <= 1.4.8) fails to sanitize filenames read from untrusted drive data (outside the AES-GCM authenticated manifest) before printing them in the verify-usb command's output. An attacker can plant filenames containing terminal cursor-movement and erase-line control bytes that repaint a forged PASSED verdict on screen, masking actual tamper detection. Fixed in 1.4.9 by routing drive-derived names through sanitize_for_display().

Executive ViewAI

Why It Matters

The openssl-encrypt package (versions 1.4.8 and earlier) permits attackers with control of USB drive contents to forge successful tamper-verification results, directly undermining the integrity of the organization's drive-scanning security controls. Any systems using this package for USB verification are accepting forged tamper checks, creating a blind spot for contaminated media.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Rare
obscure single-maintainer pip package, negligible enterprise deployment 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
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

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

CVE-2014-0160 HIGH POC
7.5 Apr 07

The (1) TLS and (2) DTLS implementations in OpenSSL 1.0.1 before 1.0.1g do not properly handle Heartbeat Extension packe

CVE-2021-3711 CRITICAL POC
9.8 Aug 24

In order to decrypt SM2 encrypted data an application is expected to call the API function EVP_PKEY_decrypt(). Rated cri

CVE-2014-0195 MEDIUM POC
6.8 Jun 05

The dtls1_reassemble_fragment function in d1_both.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2016-0800 MEDIUM POC
5.9 Mar 01

The SSLv2 protocol, as used in OpenSSL before 1.0.1s and 1.0.2 before 1.0.2g and other products, requires a server to se

CVE-2015-0204 MEDIUM POC
4.3 Jan 09

The ssl3_get_key_exchange function in s3_clnt.c in OpenSSL before 0.9.8zd, 1.0.0 before 1.0.0p, and 1.0.1 before 1.0.1k

CVE-2022-2068 HIGH
7.3 Jun 21

In addition to the c_rehash shell command injection identified in CVE-2022-1292, further circumstances where the c_rehas

CVE-2015-4000 LOW POC
3.7 May 21

The TLS protocol 1.2 and earlier, when a DHE_EXPORT ciphersuite is enabled on a server but not on a client, does not pro

CVE-2014-3566 LOW POC
3.4 Oct 15

The SSL protocol 3.0, as used in OpenSSL through 1.0.1i and other products, uses nondeterministic CBC padding, which mak

CVE-2016-2107 MEDIUM POC
5.9 May 05

The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a

CVE-2015-1793 MEDIUM POC
6.5 Jul 09

The X509_verify_cert function in crypto/x509/x509_vfy.c in OpenSSL 1.0.1n, 1.0.1o, 1.0.2b, and 1.0.2c does not properly

CVE-2022-3602 HIGH
7.5 Nov 01

A buffer overrun can be triggered in X.509 certificate verification, specifically in name constraint checking. Rated hig

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