CVE-2026-112939
Medium · 4.7CVSS
4.7
EPSS
0.1%
Published
Oct 20, 2026
CISA due date
—
Cloudanix analysis
A Python file-locking library can be tricked by a local user into handing over control of a locked file, potentially breaking safe sharing of resources between programs.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Data Tampering
- Component
- Library
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
SoftFileLock trusts a modifiable but non-removable process identifier in its marker file, allowing an authorized local process to forge the PID, delete the marker as a confused deputy, and acquire the lock.
Why it matters to the business
Applications relying on exclusive file access in multi-process Python environments can experience lock bypass, leading to data corruption, inconsistent state, or unauthorized resource access; the library is widely used via tox and other packaging tools.
How an attack unfolds
An attacker with the same account privileges locates an active SoftFileLock marker, overwrites the stored PID with a forged value, removes the marker file, and then claims the lock; the library accepts the forged marker and grants access to the new holder.
How to fix it
Upgrade filelock to version 4.2.1 or later; rebuild and redeploy any affected Python environments or containers that depend on the library.
How to confirm the fix worked
Verify installed filelock version is 4.2.1 or higher via package metadata; run integration tests that exercise concurrent SoftFileLock acquisition from separate processes.
Typical attack path
- Locate active SoftFileLock marker file created by target process
- Modify the PID value inside the marker
- Delete the marker file
- Acquire the lock as the new holder
How to detect it
Monitor for unexpected modifications or deletions of SoftFileLock marker files containing process identifiers; inspect application logs for lock acquisition events that occur without corresponding process creation.
What your security team should do
- Upgrade filelock to 4.2.1 or newer across all environments
- Audit Python dependencies for filelock usage and pin to fixed release
- Review application code that relies on file-based locking for additional hardening
The record
filelock is a platform-independent file lock for Python. From 3.22.0 until 4.2.1, SoftFileLock can trust a forged process identifier in a marker that an attacker can modify but cannot remove, allowing an authorized contender such as another process of the holder's account or root to act as a confused deputy, remove the live marker, and admit another holder. This issue is fixed in version 4.2.1.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-63115 ActivityPub is a multi-tenant ActivityPub server for Ghost, built with Fedify. CWE-345
- CVE-2026-119289 Zuke is a code-first, strongly typed build automation system for Deno. CWE-345
- CVE-2026-119422 Juspay Hyperswitch before 1.128.0 contains an authentication bypass vulnerability that… CWE-345
- CVE-2026-93008 A flaw was found in dnsmasq. CWE-345
- CVE-2026-110985 A Kafka broker using SASL/OAUTHBEARER with the default validator… CWE-345
- CVE-2026-110952 A Kafka broker that authenticates clients with SASL/OAUTHBEARER using the bundled… CWE-345
- CVE-2026-103402 An Insufficient Verification of Data Authenticity vulnerability in PCLI in Juniper… CWE-345
- CVE-2026-103330 The Sadad QA Payment WordPress plugin through 1.28 does not correctly verify the… CWE-345