CyberSecBulletin
CVE-2026-81690NVD status: Analyzed

openssl_encrypt: Improper Link Resolution Before File Access

CVE-2026-81690 is a high-severity improper link resolution before file access vulnerability in openssl_encrypt from Jahlives, with a CVSS 3.1 base score of 7.3 out of 10. It can be exploited with physical access to the device by an unauthenticated attacker, without any action from a user. The record lists version 1.4.9 as the first without the flaw, so updating openssl_encrypt to that release or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.71% chance of exploitation within 30 days, higher than 54% of scored CVEs.

Next patch cycle

High severity with no evidence of exploitation so far.

What to do

  1. Update openssl_encrypt to 1.4.9 or a later version.
  2. Read the advisory on github.com for workarounds and exact fixed builds.

Affected products and versions

VendorProductAffected versionsFixed in
Jahlivesopenssl_encryptbefore 1.4.91.4.9

Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.

How the severity score breaks down

Attack vector
PhysicalThe attacker must physically touch the device.
Attack complexity
LowNo special conditions are needed; the attack works reliably.
Privileges required
NoneNo account or login is needed.
User interaction
NoneNo action by a victim is required.
Scope
ChangedThe attack can reach beyond the vulnerable component into other systems.
Confidentiality
NoneNo data is disclosed.
Integrity
HighData or code can be modified at will.
Availability
HighThe component can be taken down completely.

Vector: CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:H. Scored by CNA (vulncheck.com).

Scoring systemScoreSeverityScored by
CVSS 4.08.7HighCNA (vulncheck.com)
CVSS 3.17.3HighCNA (vulncheck.com)

Official description

openssl-encrypt (pip package) before 1.4.9 contains a symlink-following flaw in its verify-usb v2 added-file allowlist scan. The scan enumerated the drive with rglob(), which in CPython does not descend into symlinked directories and treats the symlink as an ordinary directory, while O_NOFOLLOW on the hash side binds only the final path component. An evil-maid attacker with physical access to the removable drive could replace a tool-tree directory with a symlink to a copy containing byte-identical files plus a planted __pycache__/*.pyc file (which CPython loads in preference to recompiling the clean .py). The planted file is never enumerated, added_files stays 0, and verify-usb reports PASSED, resulting in code execution when the victim runs the portable install. Fixed in 1.4.9 (affects both 1.4.x and 1.5.x lines).

Source: the CVE record as published by its numbering authority, via NVD and CVE.org.

The underlying weakness: Improper Link Resolution Before File Access

The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.

How developers prevent this class of flaw

  • Follow the principle of least privilege when assigning access rights to entities in a software system. Denying access to a file can prevent an attacker from replacing that file with a link to a sensitive file. Ensure good compartmentalization in the system to provide protected areas that can be trusted.

More Improper Link Resolution Before File Access vulnerabilities (CWE-59)

Timeline

  1. CVE record published.
  2. CISA published its SSVC assessment (exploitation: none, automatable: no, technical impact: partial).
  3. Record last changed materially (score, affected products, status or references).

References

Other vulnerabilities in openssl_encrypt

All openssl_encrypt vulnerabilities

Recent Improper Link Resolution Before File Access vulnerabilities

Spotted an error? Tell us.