CVE-2026-81690: Improper Link Resolution Before File Access ('Link Following') in jahlives openssl_encrypt
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).
CVSS v4.0
Score 8.7high
Affected software
jahlives
openssl_encrypt
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in openssl-encrypt (pip package) before 1.4.9 arises from a symlink-following flaw in the verify-usb v2 added-file allowlist scan. The scan uses rglob() which in CPython treats symlinked directories as ordinary directories without descending into them, while the O_NOFOLLOW flag only applies to the final path component. An attacker with physical access to a removable drive can replace a directory with a symlink pointing to a copy containing byte-identical files plus a malicious __pycache__/*.pyc file. Since CPython loads .pyc files preferentially, the malicious code executes when the victim runs the portable install. The planted file is not enumerated, so the verification passes incorrectly. This issue affects versions before 1.4.9 and was fixed in 1.4.9.
Potential Impact
An attacker with physical access to a removable drive can exploit this vulnerability to execute arbitrary code on the victim's system when the portable install is run. This occurs because the verification process incorrectly passes due to improper symlink handling, allowing malicious .pyc files to be loaded by CPython.
Mitigation Recommendations
Upgrade to version 1.4.9 or later of the openssl-encrypt package, where this vulnerability is fixed. No other mitigations are specified or recommended by the vendor.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-08-27T11:12:00.889Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6a906bb5acd9273b4983a200
Added to database: 08/27/2026, 16:54:13 UTC
Last enriched: 10/02/2026, 15:55:26 UTC
Last updated: 10/09/2026, 18:48:23 UTC
Views: 63
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.