Read the docs

Race condition in filelock SoftFileLock admits two lock holders

Priority MEDIUM 55CWE-367Published · Updated

Key facts

Attack vector
Local
Privileges required
Low
User interaction
None
Attack complexity
High
Impact type
—
Confidentiality · integrity · availability
None · High · None
Fix status
Partial Red Hat: 15 without a fix

Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat.

Summary

filelock for Python, from 3.22.0 before 4.2.1, has a time-of-check time-of-use race condition (CWE-367) in SoftFileLock stale lock handling. A local attacker with low privileges can free its own marker after a stale read, so a live lock file is removed and two holders are admitted. A proof-of-concept exploit is linked in the references.

Written with Claude Haiku 5.5 from the sources below · 2026-10-29

Description from the CNA

filelock is a platform-independent file lock for Python. From 3.22.0 until 4.2.1, SoftFileLock can break a stale marker after an attacker frees its own marker following the stale read, an honest contender creates a live successor on the reused inode, and the successor's modification time is not newer than the saved observation, causing the live marker to be removed and two holders to be admitted. This issue is fixed in version 4.2.1.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00132 2nd percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Partial filelock (tox-dev): 4.2.1filelock (PyPI): 4.2.1Red Hat: 15 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
tox-devfilelock3.22.0 to before 4.2.14.2.1Patch availableCNA
—filelock (PyPI)3.22.0 to before 4.2.14.2.1Patch availableGHSA-fq56-3cx3-fjxp
  • filelock Vendortox-dev Affected 3.22.0 to before 4.2.1 Fixed in 4.2.1 Patch available CNA
  • filelock (PyPI) Vendor— Affected 3.22.0 to before 4.2.1 Fixed in 4.2.1 Patch available GHSA-fq56-3cx3-fjxp

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:tox-dev:filelock:*:*:*:*:*:python:*:*3.22.0 to before 4.2.1Vulnerabletox-dev
  • cpe:2.3:a:tox-dev:filelock:*:*:*:*:*:python:*:* Versions 3.22.0 to before 4.2.1 Vulnerable ·tox-dev

Remediation

Upgrade filelock to version 4.2.1, the fixed version in the PyPI package. Red Hat lists these products as affected with no fix available: Ansible Automation Orchestrator 2026 (none available), Exploit Intelligence (no fix planned), Lightspeed Core (none available), Lightspeed Services for Advanced Cluster Management (none available), OpenShift Lightspeed (none available) and other products.

Written with Claude Haiku 5.5 from the sources below · 2026-10-29

  • Fix · CNA filelock (tox-dev) Fixed in 4.2.1
  • Fix · GHSA-fq56-3cx3-fjxp filelock (PyPI) Fixed in 4.2.1 Advisory →

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

ProductStatusPlan or fix
Ansible Automation Orchestrator 2026AffectedNo fix yet: Fix deferred
Exploit IntelligenceAffectedNo fix planned: Out of support scope
Lightspeed CoreAffectedNo fix yet: Fix deferred
Lightspeed Services for Advanced Cluster ManagementAffectedNo fix yet: Fix deferred
OpenShift LightspeedAffectedNo fix yet: Fix deferred
Pen Drive Powered by Red Hat LightspeedAffectedNo fix yet: Fix deferred
Red Hat AI Inference ServerAffectedNo fix yet: Fix deferred
Red Hat Ansible Automation Platform 2AffectedNo fix yet: Fix deferred
Red Hat Ansible Automation Platform Ansible Core 2AffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux AI (RHEL AI) 3AffectedNo fix yet: Fix deferred
Red Hat Lightspeed Services for OCPAffectedNo fix yet: Fix deferred
Red Hat OpenShift AI (RHOAI)AffectedNo fix yet: Fix deferred
Red Hat OpenShift Container Platform 4AffectedNo fix yet: Fix deferred
Red Hat OpenShift Dev SpacesAffectedNo fix yet: Fix deferred
Red Hat Satellite 6AffectedNo fix yet: Fix deferred

Timeline

  1. 2026-10-20 Threatist record created from CVE-2026-112935
  2. 2026-10-21 Affected versions changed · Red Hat
  3. 2026-10-21 CVSS score added · Red Hat
  4. 2026-10-28 CISA SSVC decision points changed
  5. 2026-10-28 Priority changed: LOW → MEDIUM
  6. 2026-10-28 Alias added: GHSA-fq56-3cx3-fjxp
  7. 2026-10-28 Fix available: PyPI/[email protected] · GHSA-fq56-3cx3-fjxp
  8. 2026-10-28 CVSS score added · GHSA-fq56-3cx3-fjxp
  9. 2026-10-28 Weakness changed · GHSA-fq56-3cx3-fjxp
  10. 2026-10-28 6 new references · GHSA-fq56-3cx3-fjxp

References

  • TI-2026-76862 Symlink race in filelock ReadWriteLock lets attackers overwrite files CVSS 3.1HIGH 7.1
  • TI-2026-76853 filelock soft locks adopt directories created by other local users CVSS 3.1MEDIUM 6.3
  • TI-2026-76859 Symlink following in filelock ReadWriteLock redirects SQLite database CVSS 3.1MEDIUM 6.1
  • TI-2026-76857 Unsafe holder record refresh in filelock SoftReadWriteLock CVSS 3.1MEDIUM 6.1
  • TI-2026-76852 filelock UnixFileLock truncates files placed on the lock path CVSS 3.1MEDIUM 6.1
  • TI-2026-76856 Crafted lock database makes filelock ReadWriteLock acquisitions hang CVSS 3.1MEDIUM 5.5
See all 14 →

Sources