Skip to main content

openssl-encrypt EUVDEUVD-2026-67053

| CVE-2026-81697 HIGH
Untrusted Search Path (CWE-426)
2026-08-27 VulnCheck GHSA-7wp9-wpj9-m7pm
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Write malicious crypt_settings.json to victim's CWD
  2. Delivery
    Victim launches Tk GUI from that directory
  3. Exploit
    SettingsTab loads attacker-controlled KDF config (sha256:1)
  4. Execution
    Weak-KDF preflight bypassed silently
  5. Persist
    Encryption produces single-round SHA-256-derived ciphertext
  6. Impact
    Attacker brute-forces ciphertext offline to recover plaintext

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V13 - Configuration Search path verification
Exploitation Conditions

Exploitation requires two simultaneous conditions: (1) the victim must use the legacy Tk GUI interface - specifically the SettingsTab, which invokes the vulnerable CONFIG_FILE resolution in crypt_settings.py at line 84 - rather than the CLI or programmatic API; and (2) the attacker must have pre-positioned a malicious crypt_settings.json in the specific directory from which the victim launches the application (the process CWD at launch time). The flaw does not trigger in non-GUI usage. Limiting factors include: the attacker requires local filesystem write access to a directory the victim uses as CWD, the victim must actively use the Tk GUI for an encryption operation during that session, and no special configuration beyond launching the GUI from the compromised directory is needed to trigger the downgrade.

Impact

The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N, score 8.7) is materially inconsistent with the described attack mechanism, which requires the attacker to pre-position a file on the local filesystem in the victim's CWD - an operation that is local, not network-reachable. A more accurate vector would use AV:L and UI:A (victim must actively launch the GUI from the compromised directory); the supplied vector should not be used as the basis for prioritization. No EPSS data is available to quantify exploitation probability. The CVE is not listed in CISA KEV and no public exploit code has been identified. Real-world impact is limited to users of the legacy Tk GUI who both operate from a directory an attacker can write to and perform encryption during that session; CLI or programmatic use of the library is entirely unaffected. When exploitation conditions are met, however, the confidentiality impact is severe: weakened ciphertext is vulnerable to near-instant offline attack.

Exploit ScenarioDerived

An attacker with write access to a directory the victim commonly uses as CWD - such as a shared Downloads folder or a directory created by extracting an archive - plants a crypt_settings.json specifying sha256:1 with memory-hard KDFs disabled. When the victim launches the Tk GUI from that directory, the application silently loads attacker-controlled KDF settings, bypasses the weak-KDF preflight, and produces ciphertext derived from a single SHA-256 round. The attacker then obtains the ciphertext and recovers plaintext via near-instant offline brute-force.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 27, 2026

Key derivation function downgrade in openssl-encrypt pip package (versions ≤ 1.4.8) allows an attacker who pre-positions a crafted crypt_settings.json in the victim's process launch directory to silently collapse encryption to a single SHA-256 round, rendering resulting ciphertext trivially brute-forceable offline. A regression at line 84 of crypt_settings.py reassigns CONFIG_FILE from the intended absolute home-directory path to a bare relative filename, causing the legacy Tk GUI's SettingsTab to consume attacker-controlled KDF parameters instead of the user's legitimate settings. No public exploit is identified at time of analysis; vendor-released patch is available as version 1.4.9.

RemediationAI

Upgrade openssl-encrypt to version 1.4.9, which corrects the CONFIG_FILE reassignment in crypt_settings.py to restore absolute home-directory path resolution, per the vendor advisory at https://github.com/jahlives/openssl_encrypt/security/advisories/GHSA-7j2v-g84w-m75v and the VulnCheck advisory at https://www.vulncheck.com/advisories/openssl-encrypt-before-1.4.9-kdf-downgrade-via-cwd-relative-configuration. If immediate upgrade is not possible, users should only launch the Tk GUI from their own home directory or a directory with strict write permissions excluding all other users, preventing an attacker from planting a malicious crypt_settings.json; the trade-off is that this requires user discipline and cannot be enforced programmatically without code changes. Organizations can additionally audit filesystem permissions on directories commonly used as CWD for this application and alert on unexpected creation of crypt_settings.json outside the user home directory.

Affected VersionsENISA

openssl_encrypt 0 <1.4.9

Affected Packages

euvd openssl_encrypt fix: 1.4.9

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-426 (Untrusted Search Path): Python resolves relative filenames against the process current working directory (CWD), so the reassignment of CONFIG_FILE from '~/.crypt_settings.json' to the bare string 'crypt_settings.json' in crypt_settings.py at line 84 means any crypt_settings.json file present in the CWD at launch time is consumed instead of the authoritative per-user configuration. The Tk GUI's SettingsTab, which reads and writes KDF parameters such as algorithm selection, iteration count, and memory-hard KDF flags, is the sole affected code path. An attacker-crafted file specifying sha256:1 disables Argon2, bcrypt, and similar memory-hard derivation functions, bypassing the built-in weak-KDF preflight guard and reducing computational cost to near zero. The affected product is identified by CPE cpe:2.3:a:jahlives:openssl_encrypt:*:*:*:*:*:*:*:* across all releases through 1.4.8.

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 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 6.1 MEDIUM

Attacker must write a file to the local filesystem CWD (AV:L) and victim must launch the GUI from that directory (UI:R), yielding ciphertext fully vulnerable to offline attack (C:H) and silent KDF config manipulation (I:L).

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N
4.0 AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/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
None
Vulnerable system: Availability
None
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
HIGH 8.7

DescriptionCVE.org

openssl_encrypt (pip package openssl-encrypt) versions <= 1.4.8 contain a CWD-relative configuration file resolution flaw in crypt_settings.py, where CONFIG_FILE (originally the absolute per-user path ~/.crypt_settings.json) is reassigned at line 84 to the bare relative name 'crypt_settings.json'. As a result, the legacy Tk GUI's SettingsTab reads and writes KDF settings from crypt_settings.json in the process launch (current working) directory instead of the user's home directory. An attacker who plants a malicious crypt_settings.json (e.g. sha256:1 with all memory-hard KDFs disabled) can silently downgrade encryption performed in that GUI session to roughly one hash round, bypassing the weak-KDF preflight and enabling offline brute-force attacks against the resulting ciphertext. Fixed in 1.4.9.

Executive ViewAI

Why It Matters

The openssl-encrypt Python library (versions ≤1.4.8) contains a configuration path regression that enables attackers with local file system access to downgrade encryption security to a single SHA-256 round, rendering encrypted data vulnerable to offline brute-force attacks. Any organization using this package to protect sensitive data faces immediate confidentiality risk.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Low
niche pip package by single developer, limited enterprise footprint
Data Quality
5 sources
Confidence: Medium

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 HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
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-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