{"id":"CVE-2026-81690","aliases":["PYSEC-2026-3796","GHSA-hw7h-wqf5-6crx"],"title":"openssl-encrypt (pip package) before 1.4.9 contains a symlink-following flaw in its verify-usb v2 added-file allowlist scan. The scan enu…","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 tre…","severity":"none","vendor":"openssl-encrypt","product":"openssl-encrypt","ecosystem":"pip","affected":["openssl-encrypt < 1.4.9"],"patched":["openssl-encrypt 1.4.9"],"published":"2026-08-27","updated":"2026-09-03","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/PYSEC-2026-3796","references":[{"url":"https://github.com/jahlives/openssl_encrypt/security/advisories/GHSA-hw7h-wqf5-6crx"},{"url":"https://www.vulncheck.com/advisories/verify-usb-before-1.4.9-symlink-directory-traversal-code-execution"}],"tags":["osv","pip"],"epss":0.00487,"epssPercentile":0.41082,"ingestedAt":"2026-09-03T19:32:12.153Z","slug":"CVE-2026-81690","body":"## Overview\n\nopenssl-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).\n\n## Affected packages\n\n- `openssl-encrypt < 1.4.9`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `openssl-encrypt 1.4.9`","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}