Read the docs
TI-2026-56344 Aliases CVE-2026-81690GHSA-vcf6-hg34-vx9w

verify-usb before 1.4.9 Symlink Directory Traversal Code Execution

Priority LOW 39CWE-59Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
None
Impact type
Information disclosure
Confidentiality · integrity · availability
High · None · None
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-59 and the CVSS impact.

Summary

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

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00706 53rd percentileScored 2026-11-07
Fix Fixed openssl_encrypt (jahlives): 1.4.9

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
jahlivesopenssl_encryptbefore 1.4.91.4.9Patch availableCNA
  • openssl_encrypt Vendorjahlives Affected before 1.4.9 Fixed in 1.4.9 Patch available CNA

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:jahlives:openssl_encrypt:*:*:*:*:*:python:*:*before 1.4.9Vulnerablejahlives
  • cpe:2.3:a:jahlives:openssl_encrypt:*:*:*:*:*:python:*:* Versions before 1.4.9 Vulnerable ·jahlives

Remediation

  • Fix · CNA openssl_encrypt (jahlives) Fixed in 1.4.9

Fixed in the same release

Records fixed by the same vendor advisory or release, as the CNA lists them.

  • Release ·

    jahlives openssl_encrypt 1.4.9

    36 records Highest priority Priority MEDIUM 24 MEDIUM, 12 LOW

    Other records, highest priority first

    • TI-2026-56361 openssl_encrypt before 1.4.9 ANSI Escape Injection via Identity EmailPriority MEDIUM 49
    • TI-2026-56355 openssl_encrypt before 1.4.9 Arbitrary Code Execution via unsigned pluginPriority MEDIUM 48
    • TI-2026-56354 openssl_encrypt before 1.4.9 GPG Signature Verification BypassPriority MEDIUM 48

Vendor assessments

Red Hat

Red Hat's page for this CVE →

Not affected: 1 product
  • Red Hat

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-81690
  2. 2026-10-03 Alias added: GHSA-vcf6-hg34-vx9w
  3. 2026-11-06 Affected versions changed · Red Hat
  4. 2026-11-06 CVSS score added · Red Hat

References

  • TI-2026-52616 openssl_encrypt before 1.4.0 Sandbox Escape via Type Hierarchy CVSS 4.0CRITICAL 9.3
  • TI-2026-52615 openssl_encrypt before 1.4.0 Sandbox Escape via Dunder Attribute Traversal CVSS 4.0CRITICAL 9.3
  • TI-2026-52602 openssl_encrypt before 1.4.0 Sandbox Bypass via pathlib and io CVSS 4.0HIGH 8.7
  • TI-2026-52617 openssl_encrypt before 1.4.0 Weak Shared Secret via PQC Simulation Mode CVSS 4.0CRITICAL 9.3
  • TI-2026-52614 openssl_encrypt before 1.4.0 Plugin Sandbox Bypass via Process Isolation CVSS 4.0CRITICAL 9.3
  • TI-2026-52613 openssl_encrypt before 1.4.0 Authentication Bypass via Bearer Token CVSS 4.0CRITICAL 9.3
See all 59 →

Sources