Sceawere

Vulnerability Detail

CVE-2026-81690UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV

openssl-encrypt Symlink Follow Vulnerability

Vulnerability Metadata

Severity
High
Score / CVSS
7.3
Creation Date
1h ago
Vendor
jahlives
Product
openssl_encrypt
Attack Type
Improper Link Resolution Before File Access ('Link Following')
Vector String
CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:H
Attack Complexity
LOW

Narrative and Response

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

Executive Summary

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Executive Summary Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Technical Details

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Detailed Technical Analysis Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Mitigations

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Remediation & Mitigations Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

References

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Intelligence References Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Additional Metadata

{
  "score": "7.3",
  "pubDate": "2026-08-27T17:20:58.843Z",
  "pubdate": "2026-08-27T17:20:58.843Z",
  "executiveSummary": "The openssl-encrypt pip package contains a critical symlink-following flaw within its 'verify-usb' v2 added-file allowlist scanning mechanism, present in versions prior to 1.4.9.\nThe vulnerability allows an attacker with physical access to a removable drive to bypass security integrity checks, leading to arbitrary code execution when the victim executes a portable software installation.\nThe issue arises from a discrepancy between how the scanning process enumerates directories using 'rglob()' and how file operations verify integrity via 'O_NOFOLLOW'.\nAn 'evil-maid' attacker can manipulate the directory structure of the removable media by replacing legitimate tool-tree directories with malicious symlinks pointing to attacker-controlled files.\nBecause the 'verify-usb' scan fails to properly resolve or inspect the target of these symlinks, it reports a 'PASSED' integrity status despite the presence of planted, malicious Python bytecode.\nThis vulnerability poses a significant risk to users relying on 'verify-usb' for verifying the provenance and integrity of tools on portable storage devices.",
  "technicalDetails": "The vulnerability resides in the 'verify-usb' v2 functionality of the openssl-encrypt package, which is designed to perform allowlist scans on removable drives. The root cause is an inconsistent handling of symbolic links between the directory enumeration phase and the file integrity verification phase.\nDuring the enumeration process, the implementation utilizes 'rglob()' to traverse the directory structure of the drive. In CPython, 'rglob()' does not recursively descend into symbolic links that point to directories; instead, it treats the symlink itself as an ordinary directory. This failure to resolve the symlink target prevents the scanner from identifying the actual contents of the referenced directory.\nConcurrently, the verification logic employs the 'O_NOFOLLOW' flag when opening files to check their integrity. This flag ensures that if the final path component is a symlink, the operation will fail rather than following the link. However, because the scanner's enumeration phase erroneously skips the contents of the symlinked directory, the malicious files within that directory are never subjected to the 'O_NOFOLLOW' integrity check.\nAn attacker can exploit this by replacing a legitimate tool-tree directory on a removable drive with a symlink. This symlink points to a directory structure constructed by the attacker that contains a mixture of byte-identical legitimate files (to satisfy basic checks) and a malicious '__pycache__/*.pyc' file.\nWhen CPython executes, it prioritizes the loading of existing '.pyc' files over recompiling clean '.py' source files. Because the 'verify-usb' tool fails to enumerate the contents of the symlinked directory, the malicious bytecode file remains undetected, and the scan reports 'PASSED'.\nUpon the victim running the portable install, the Python interpreter loads the planted '.pyc' file, resulting in arbitrary code execution within the context of the running application. This attack requires physical access to the removable medium and specifically targets the assumption that the integrity scanner is accurately representing the filesystem state of the storage device."
}
CVE-2026-81690: openssl-encrypt Symlink Follow Vulnerability (HIGH Severity, CVSS: 7.3) - Sceawere