p PatchFirst

CVE-2026-81690

CVE-2026-81690 · verify-usb before 1.4.9 Symlink Directory Traversal Code Execution

This page contains facts from public vulnerability sources. Check the original advisory before updating.

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

CVSS 8.7 · High · EPSS 0.7% · Fix available

Published
Updated

Stack: python

Affected products and versions

  • openssl_encrypt

    Versions
    • ≥ 0, < 1.4.9: Affected (semver)
    • 1.4.9: Not affected (semver)

    Update to 1.4.9

  • openssl-encrypt PyPI

    Versions
    • 0.2.2
    • 0.2.3
    • 0.2.4
    • 0.2.5
    • 0.2.6
    • 0.3.0
    • 0.3.1
    • 0.3.2
    • 0.3.3
    • 0.4.0
    • 0.4.1
    • 0.4.2
    • 0.4.3
    • 0.4.4
    • 0.5.0
    • 0.5.1
    • 0.5.3
    • 0.6.0rc1
    • 0.7.0rc2
    • 0.7.1
    • 0.7.2
    • 0.8.0
    • 0.8.1
    • 0.8.2
    • 0.9.2
    • 1.0.0
    • 1.0.1
    • 1.0.2
    • 1.0.3
    • 1.1.0
    • 1.2.0
    • 1.2.1
    • 1.3.0
    • 1.3.1
    • 1.3.2
    • 1.3.3
    • 1.3.4
    • 1.3.5
    • 1.4.0
    • 1.4.0b3
    • 1.4.0b4
    • 1.4.0b5
    • 1.4.0b6
    • 1.4.0b7
    • 1.4.0b8
    • 1.4.1
    • 1.4.1rc2
    • 1.4.2
    • 1.4.4
    • 1.4.5
    • 1.4.6
    • 1.4.7
    • 1.4.8
    Affected ranges
    • ECOSYSTEM: < 1.4.9

    Update to 1.4.9

Original sources

Check your server →