CVE-2026-112907 json
filelock: On Windows an oplock on a soft lock's marker holds SoftFileLock.acquire() past its timeout and blocks the stale break
published 2026-10-23 16 d ago modified 2026-11-06 2 d ago also GHSA-567q-5qvw-pf92 , EUVD-2026-117813
- cvss
- 2.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.1%
- EPSS 0.1% chance of exploitation in 30 days, percentile 1%
- public exploits
- 0
- none known
Summary
filelock is a platform-independent file lock for Python. From 3.22.0 until 4.2.1, soft lock classes on Windows read an existing marker with _read_lock_file and remove a stale marker through break_lock_file using pathname operations that wait for an oplock break. Another local account with read access to an unheld marker can keep a Level 1 or batch oplock unanswered, causing SoftFileLock.acquire and related async or fallback locks to wait beyond timeout, blocking=False, and cancel_check. A stale marker under the oplock cannot be broken, but mutual exclusion remains intact and no file other than the marker is accessed. This issue is fixed in version 4.2.1.
Patch / fix
- pypi filelock 4.2.1
- github.com/tox-dev/filelock@97d694a commit
- github.com/tox-dev/filelock@e1e825b commit
- github.com/tox-dev/filelock#835 pull request
- github.com/tox-dev/filelock/releases/tag/4.2.1 release
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-112907 updated cvss 2.5
filelock: filelock: Denial of Service via Windows opportunistic lock on lock markers
-
Red Hat OpenShift AI (RHOAI) rhoai/odh-mlflow-rhel9affected: workaround, no fix available “Fix deferred”
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.10% chance of exploitation in the next 30 days, higher than 1% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 2.5 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L |
| GitHub | 3.1 | 2.5 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | filelock | >=3.22.0, <4.2.1 |
4.2.1 |
Affected products
- tox-dev filelock
Classification
- Weakness
-
- CWE-667 Improper Locking
References
-
github.com
/tox-dev/filelock/pull/835
web
- github.com /tox-dev/filelock/commit/97d694a9a3ee1721d6c79a480174dfd9b060a080
-
github.com
/tox-dev/filelock/commit/e1e825b1992f69fb6b346dc395d5ae4893536c0a
web
-
github.com
/tox-dev/filelock/security/advisories/GHSA-567q-5qvw-pf92
web
-
github.com
/tox-dev/filelock/releases/tag/4.2.1
web
-
github.com
/tox-dev/filelock
package
Sources
- CVE List CVE-2026-112907
- GitHub Advisory GHSA-567q-5qvw-pf92
- NVD CVE-2026-112907
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.