CVE-2026-112912
Low · 2.5CVSS
2.5
EPSS
—
Published
Oct 20, 2026
CISA due date
—
Cloudanix analysis
A Python file-locking tool can accidentally reveal whether certain files exist and can be changed when a link is swapped on a shared computer, letting other users on the same system learn about hidden files.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- High
- Impact
- Data Exposure
- Component
- Library
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
SoftFileLock follows a swapped symlink during an os.access writability check on nodes lacking owner-write bits, leaking existence and writability of a chosen path to another local user via observable lock acquisition results.
Why it matters to the business
Attackers on shared systems can probe for sensitive file locations and permissions, increasing risk of targeted follow-on attacks; the flaw affects a widely used Python dependency in development and CI tooling with an available exploit and recent publication.
How an attack unfolds
An attacker with local access creates or swaps a symlink to a target path, triggers SoftFileLock's conditional access check in versions 3.32.6 to 4.2.0, and observes whether the lock succeeds to infer the target's existence and writability; the published exploit lowers the barrier for local reconnaissance.
How to fix it
Upgrade the filelock package to version 4.2.1 or later in all environments; verify the resolved version after installation and rebuild any affected containers or virtual environments.
How to confirm the fix worked
Run pip show filelock or equivalent package manager commands to confirm version 4.2.1 or newer is installed; test SoftFileLock behavior with crafted symlinks in a controlled environment to verify the symlink-following check is disabled.
Typical attack path
- Identify a target path whose existence or writability is of interest.
- Create or atomically swap a symlink pointing to the target in a directory where the victim process runs SoftFileLock.
- Trigger the vulnerable SoftFileLock acquisition from the victim process.
- Observe the lock result to determine if the target exists and is writable.
- Use the inferred information to guide further local attacks.
How to detect it
Review process creation and file access logs on multi-user systems for unexpected symlink operations around Python processes using filelock; look for repeated lock acquisition attempts on paths that do not exist.
What your security team should do
- Immediately prioritize upgrade to filelock 4.2.1 across all Python projects and CI pipelines.
- Scan dependency manifests and lockfiles for versions between 3.32.6 and 4.2.0.
- Review shared development or build hosts for local users who could leverage the information leak.
- Monitor for new exploit releases given the ExploitAvailable maturity.
The record
filelock is a platform-independent file lock for Python. From 3.32.6 until 4.2.1, SoftFileLock can follow a swapped symbolic link during the conditional os.access writability check for a node without its owner-write bit, allowing another local user on a platform and directory configuration that follows the link to infer whether a chosen path exists and is writable from the observable acquisition result. This issue is fixed in version 4.2.1.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-119336 Pi-hole is a DNS sinkhole that protects devices from unwanted content without installing… CWE-59
- CVE-2026-119334 Pi-hole is a DNS sinkhole that protects devices from unwanted content without installing… CWE-59
- CVE-2026-116250 In server mode pgAdmin 4 validates a path a user gives for a file in their storage… CWE-59
- CVE-2026-119704 Bastille through 1.4.4 contains a symlink following vulnerability in the cp.sh, rcp.sh… CWE-59
- CVE-2026-119291 Zuke is a code-first, strongly typed build automation system for Deno. CWE-59
- CVE-2026-118990 CallBackery versions before 0.62.0 for Perl leave a world-readable dump of the… CWE-59
- CVE-2026-119364 ProFTPD through 1.3.9e and 1.3.10rc1 through 1.3.10rc4 contains a link-following… CWE-59
- CVE-2026-119168 HashiCorp Nomad and Nomad Enterprise are vulnerable to symlink following during… CWE-59