CVE-2026-112941
Low · 3.3CVSS
3.3
EPSS
0.1%
Published
Oct 20, 2026
CISA due date
—
Cloudanix analysis
A local user on the same computer could cause certain Python programs to write lock information into the wrong folders, potentially allowing tampering with data those programs rely on.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Library
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
A local race condition in SoftReadWriteLock and AsyncSoftReadWriteLock allows caching of a successful .rw lock tree check followed by re-resolution of names during record operations, enabling redirection of lock-record writes into directories controlled by another local user.
Why it matters to the business
Applications relying on filelock for coordination may experience unauthorized local file modifications or data integrity issues, especially in multi-user environments or build tooling, with exploitation publicly available shortly after disclosure.
How an attack unfolds
A local attacker monitors for an initial successful lock acquisition by the victim process, replaces the cached lock tree with a malicious symlink or directory structure pointing to attacker-writable locations, then triggers subsequent record operations that follow the redirected paths and write lock data under the attacker's control.
How to fix it
Upgrade filelock to version 4.2.1 or later; rebuild and redeploy any affected packages or containers; verify no pinned vulnerable versions remain in dependency manifests.
How to confirm the fix worked
Confirm installed filelock version is 4.2.1 or higher via package manager or requirements files; re-run application lock operations under concurrent local user scenarios to ensure no redirection occurs; scan dependency trees for any pre-4.2.1 instances.
Typical attack path
- Victim process performs first successful check of the .rw lock tree
- Attacker replaces the lock tree with a controlled directory or symlink
- Victim process resolves names again during later record operations
- Lock writes are redirected into attacker-writable directories
- Attacker observes or manipulates resulting files to achieve integrity impact
How to detect it
Examine application logs for unexpected file paths or permission errors during lock operations; review system audit logs for file creation or symlink changes in lock directories immediately after lock acquisitions; look for processes writing to non-standard locations under the context of the locking application.
What your security team should do
- Immediately upgrade all instances of filelock to 4.2.1 or newer across development and production environments
- Audit dependency graphs for downstream packages that bundle vulnerable filelock versions
- Add package version pinning and automated scanning to prevent reintroduction of affected releases
- Review local multi-user systems for processes using filelock and monitor for unexpected file writes
The record
filelock is a platform-independent file lock for Python. From 4.1.0 until 4.2.1, SoftReadWriteLock and AsyncSoftReadWriteLock cache a successful check of the <path>.rw lock tree and resolve its names again during later record operations, allowing another local user who can replace that tree after the first acquisition to redirect lock-record writes into directories writable by the lock user. 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