# CVE-2026-81690: openssl-encrypt symlink-following in verify-usb

Source: https://junglewise.ai/threats/cve-2026-81690-openssl-encrypt-symlink-following-in-verify-usb  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-08-27. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-81690 · Severity: high · CVSS 7.3 · Published 2026-08-27

openssl-encrypt is a Python package that provides USB verification for portable tool installations. The verify-usb component failed to properly detect symlinks on removable drives, allowing an attacker with physical access to replace a legitimate directory with a symlink containing malicious code. When a victim runs the portable install after verification passes, the attacker's code executes instead of the legitimate tools.

Technologies: [Jahlives Openssl Encrypt](https://junglewise.ai/threats/technologies/openssl-encrypt), [openssl-encrypt (PyPI)](https://junglewise.ai/threats/technologies/pypi-openssl-encrypt). Vendors: [Jahlives](https://junglewise.ai/threats/vendors/jahlives), [PyPI](https://junglewise.ai/threats/vendors/pypi).

## Quick answers

**Is CVE-2026-81690 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-81690 being exploited in the wild.

**How severe is CVE-2026-81690?** High severity, with a CVSS score of 7.3, published 27 August 2026.

**Which products and versions are affected?** Jahlives Openssl Encrypt before 1.4.9 (affects 1.4.x and 1.5.x lines); openssl-encrypt (PyPI) ECOSYSTEM:introduced=0,fixed=1.4.9.

**Is there a fix for CVE-2026-81690?** Yes. openssl-encrypt (PyPI): upgrade to 1.4.9 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-81690 attacked?** It is attacked with physical access, in a software library.

**Am I affected by CVE-2026-81690?** Check whether you run Jahlives Openssl Encrypt or openssl-encrypt (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- openssl-encrypt (PyPI): upgrade to 1.4.9 or later

  ```sh
  pip install "openssl-encrypt>=1.4.9"
  ```


## Technical details

The vulnerability is a symlink-following flaw (CWE-59) in the verify-usb v2 allowlist scan. The scan uses rglob() to enumerate files, which does not descend into symlinked directories, while the hash verification uses O_NOFOLLOW that only binds the final path component. An evil-maid attacker with physical access can replace a tool-tree directory with a symlink pointing to a copy containing byte-identical files plus a planted __pycache__/*.pyc file (which Python loads preferentially). The planted file remains unenumerated, added_files counter stays 0, and verify-usb incorrectly reports PASSED. The fix in 1.4.9 replaces rglob() with os.walk(followlinks=False) and flags any symlinked path component as tampering, causing legitimate installs without symlinks to pass and malicious symlink-based attacks to fail.

## Affected products

- jahlives openssl-encrypt before 1.4.9 (affects 1.4.x and 1.5.x lines)

## Identifiers

- CVE-2026-81690
- PYSEC-2026-3796

## Timeline

- 2026-08-27: disclosed
- 2026-08-12: patched: Version 1.4.9 released with fix

## References

- [https://github.com/jahlives/openssl_encrypt/security/advisories/GHSA-hw7h-wqf5-6crx](https://github.com/jahlives/openssl_encrypt/security/advisories/GHSA-hw7h-wqf5-6crx)
- [https://www.vulncheck.com/advisories/verify-usb-before-1.4.9-symlink-directory-traversal-code-execution](https://www.vulncheck.com/advisories/verify-usb-before-1.4.9-symlink-directory-traversal-code-execution)

## Related threats

- [openssl_encrypt KDF cost parameter validation bypass](https://junglewise.ai/threats/cve-2026-81721-openssl-encrypt-kdf-cost-parameter-validation-bypass)
- [openssl_encrypt memory exhaustion in identity file protection block](https://junglewise.ai/threats/cve-2026-81720-openssl-encrypt-memory-exhaustion-in-identity-file-protection)
- [openssl_encrypt arbitrary code execution via plugin signature bypass](https://junglewise.ai/threats/cve-2026-81719-openssl-encrypt-arbitrary-code-execution-via-plugin-signature)
- [openssl_encrypt weak PBKDF2 parameters in keyfile encryption](https://junglewise.ai/threats/cve-2026-81718-openssl-encrypt-weak-pbkdf2-parameters-in-keyfile-encryption)
- [openssl_encrypt USB drive integrity bypass with fixed KDF salt](https://junglewise.ai/threats/cve-2026-81717-openssl-encrypt-usb-drive-integrity-bypass-with-fixed-kdf-salt)
