CVE-2026-112937
Medium · 6.1CVSS
6.1
EPSS
0.2%
Published
Oct 20, 2026
CISA due date
—
Cloudanix analysis
A Python library used to safely lock files has a flaw that lets another user on the same computer delete or tamper with locked files and folders.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Library
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
Race condition in ReadWriteLock cleanup from version 4.1.0 to 4.2.1 allows removal of a randomized .filelock-* private hard-link directory, enabling observation or forgery of names for sibling directory rename and deletion by another local user with rename access in a non-sticky parent directory.
Why it matters to the business
Local attackers can delete or interfere with files and directories owned by other users on the same system, leading to data loss, service disruption, or integrity violations in shared environments using the library.
How an attack unfolds
An attacker with local rename access monitors the .filelock-* cleanup process, observes or forges a dead-owner sweep name, and renames a sibling directory onto it to force deletion; exploit code is publicly available and the flaw was published six days ago.
How to fix it
Upgrade tox-dev filelock to version 4.2.1 or later on all affected systems; verify the installed version after update and restart dependent Python processes.
How to confirm the fix worked
Run 'python -c "import filelock; print(filelock.__version__)"' to confirm version 4.2.1 or higher; review application dependency manifests and test lock/unlock operations under concurrent local users.
Typical attack path
- Identify a process using filelock ReadWriteLock on a shared non-sticky parent directory
- Wait for or trigger cleanup of the randomized .filelock-* hard-link directory
- Observe live name or forge dead-owner sweep name during the race window
- Rename attacker-controlled sibling directory onto the target name
- Trigger deletion of the renamed directory to remove victim data
How to detect it
Review system logs and file access events for unexpected renames or deletions involving .filelock-* directories; examine Python process activity and audit trails around lock cleanup operations for race-condition timing anomalies.
- .filelock-
- ReadWriteLock
- private-hard-link directory
What your security team should do
- Immediately upgrade all instances of filelock to 4.2.1
- Scan for and replace any pinned versions between 4.1.0 and 4.2.0 in requirements or lockfiles
- Monitor local user activity on shared directories used by filelock
- Prioritize systems with high EPSS and public exploit availability
The record
filelock is a platform-independent file lock for Python. From 4.1.0 until 4.2.1, ReadWriteLock can remove a randomized .filelock-* private-hard-link directory during cleanup, allowing another local user with rename access in a non-sticky parent to observe a live name or forge a dead-owner sweep name and rename a sibling directory onto it for deletion. This issue is fixed in version 4.2.1.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-116250 In server mode pgAdmin 4 validates a path a user gives for a file in their storage… CWE-367
- CVE-2026-116240 In server mode pgAdmin 4 validates a path into the user's storage directory with… CWE-367
- CVE-2026-115683 A race condition in Epiphany allows a malicious website to bypass the TLS/SSL certificate… CWE-367
- CVE-2026-119552 Uptime Kuma through 2.5.8 contains a race condition in the Socket.IO first-run setup… CWE-367
- CVE-2026-92374 A time-of-check time-of-use (TOCTOU) race condition combined with improper symbolic link… CWE-367
- CVE-2026-117603 Electrum before 4.7.2 contains a spending limit bypass vulnerability in the Nostr Wallet… CWE-367
- CVE-2026-75524 OpenReception's appointment booking software provides an end-to-end encrypted appointment… CWE-367
- CVE-2026-105481 A flaw in Node.js HTTP Agent connection reuse can cause a client to accept as valid a… CWE-367