Security fix · CVE-2026-112915
filelock is a platform-independent file lock for Python.
Published Oct 20, 2026 · catalog updated Oct 28, 2026 · filelock is a platform-independent
Last checked Nov 7, 2026. A connected source was read within the last 7 days.
Check if you run it
No confirmed exploitation is on record for CVE-2026-112915. EPSS is 0.22%. Act only if a listed version of filelock is a platform-independent is installed.
Gaps on this record
- The stored product name is a package slug. The name on this page is taken from the title (filelock is a platform-independent).
- No vendor fix or required action is stored. Compare the linked advisory before you change production.
Same product and reporting
- CVE-2026-112941 · Low
- CVE-2026-112940 · High
- CVE-2026-112939 · Medium
- CVE-2026-112937 · Medium
- CVE-2026-112936 · Medium
- Severity
- Medium5.5
- Known exploitation
- Not in CISA/VulnCheck KEV
- EPSS
- 0.22%
- Remediation
- Version ranges on file
- Affected products
- cpe tox-dev/filelock · pip filelock · pypi filelock
and (the SQLite-backed reader/writer lock) run on a fresh connection for every acquire. That statement makes SQLite load the whole schema (the table, which lists every table and index with its text) of whatever file sits at the lock path. The caller's reaches SQLite only as , which bounds waits for another connection's lock, not schema loading. The only content checks reject non-regular files and WAL mode (write-ahead log, an SQLite mode that keeps changes in a side file). A local user who can place or overwrite the file at a 's database path can therefore make every / of every process using that lock ignore its and . That position needs a non-sticky shared directory, or a database owned by the user running the lock (below: the lock user) that other users may write. One 37 KB crafted file stalls each acquire for as long as its author chooses while the process allocates about 1 GB. A second 28 KB layout makes the acquire of a free lock run without end, spinning at 100% CPU and ignoring Ctrl-C. The effect is availability only: the other user reads nothing and corrupts nothing. Affected versions are filelock 3.20.4 through 4.2.0. Anthropic's OSS Scanner reported this in private as [medium, CWE-400]: ReadWriteLock: crafted lock database hangs acquire regardless of timeout. ## Severity **CVSS 3.1 scores 5.5 (Medium).** (local): the other user needs an account on the same host. (low privileges): an ordinary account is enough. (low attack complexity): the other user plants one file; no race. (no user interaction). (high availability impact): every acquire of every process using the lock runs for as long as that user chose, or does not return, with and ignored and not delivered, so only killing the process ends it. and (no confidentiality or integrity impact): the other user reads nothing and corrupts nothing. (scope unchanged). Classification from the external review: **conditional security**, an availability concern only when an untrusted actor can supply the database fil
Are you affected?
Enter the version you run. The result uses only the ranges stored on this record.
The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.
- cpe tox-dev/filelock< 4.2.1
- pip filelock>= 3.20.4, <= 4.2.0
- pypi filelockversion unspecified
How to fix CVE-2026-112915
Upgrade
CVE-2026-112915 lists a fix boundary at 4.2.1. Compare the installed build with that boundary before you change production.
Version check
Affected < 4.2.1
Advisory
Open the cve_org record and follow its fix.
Official advisories
What to do
Three questions, each answered from this record only. Confirm the vendor advisory before you patch.
Should you patch?
No confirmed exploitation is on record for CVE-2026-112915. EPSS is 0.22%. Act only if a listed version of filelock is a platform-independent is installed.
Which versions are affected?
Compare what you have installed with < 4.2.1, >= 3.20.4, <= 4.2.0. Compare the installed version with the linked vendor advisory before you change production.
What should an analyst verify?
CWE-400: Uncontrolled Resource Consumption. EPSS 0.22%. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.
Code
The project this record applies to. Exploit listings stay in References.
Timeline
Detection, updates, and resolution for this record.
Oct 20, 2026 · NIST NVD
Detected
filelock is a platform-independent file lock for Python. From 3.20.4 until 4.2.1, ReadWriteLock can open a crafted SQLite lock database without bounding schema and query work, allowing another local user who can replace the database to make acquisition stall or hang; versions from 3.20.4 expose this on initial per-instance opening, and versions from 3.30.0 repeat the exposure on every acquisition.
Oct 20, 2026 · NIST NVD
Updated
filelock is a platform-independent file lock for Python. From 3.20.4 until 4.2.1, ReadWriteLock can open a crafted SQLite lock database without bounding schema and query work, allowing another local user who can replace the database to make acquisition stall or hang; versions from 3.20.4 expose this on initial per-instance opening, and versions from 3.30.0 repeat the exposure on every acquisition.
Oct 20, 2026 · NIST NVD
Updated
filelock is a platform-independent file lock for Python. From 3.20.4 until 4.2.1, ReadWriteLock can open a crafted SQLite lock database without bounding schema and query work, allowing another local user who can replace the database to make acquisition stall or hang; versions from 3.20.4 expose this on initial per-instance opening, and versions from 3.30.0 repeat the exposure on every acquisition.
Oct 21, 2026 · NIST NVD
Updated
filelock is a platform-independent file lock for Python. From 3.20.4 until 4.2.1, ReadWriteLock can open a crafted SQLite lock database without bounding schema and query work, allowing another local user who can replace the database to make acquisition stall or hang; versions from 3.20.4 expose this on initial per-instance opening, and versions from 3.30.0 repeat the exposure on every acquisition.
Oct 28, 2026 · GitHub Advisory Database
Updated
and (the SQLite-backed reader/writer lock) run on a fresh connection for every acquire. That statement makes SQLite load the whole schema (the table, which lists every table and index with its text) of whatever file sits at the lock path. The caller's reaches SQLite only as , which bounds waits for another connection's lock, not schema loading. The only content checks reject non-regular files and
Sources
- CVE.orgVulnerability recordCVE-2026-112915
Official CVE identifier
cve.org - FIRST EPSSExploitation probabilityCVE-2026-112915
30-day exploitation probability 0.22%
first.org - GitHub Advisory DatabasePackage advisoryGHSA-cwqr-hh33-gh44
filelock ReadWriteLock: a crafted lock database makes every acquire stall or hang regardless of timeout
github.com - GitLab Advisory DatabasePackage advisoryCVE-2026-112915
ReadWriteLock and AsyncReadWriteLock (the SQLite-backed reader/writer lock) run PRAGMA journal_mode=MEMORY on a fresh connection for every acquire. That statement makes SQLite load the whole schema (the sqlite_master table, which lists every table and index with its CREATE text) of whatever file sits at the lock path. The caller's timeout reaches SQLite only as busy_timeout, which bounds waits for
advisories.gitlab.com - NIST NVDVulnerability recordCVE-2026-112915
filelock is a platform-independent file lock for Python. From 3.20.4 until 4.2.1, ReadWriteLock can open a crafted SQLite lock database without bounding schema and query work, allowing another local user who can replace the database to make acquisition stall or hang; versions fro
nvd.nist.gov
References
Freshness
Last verified in this catalog Nov 7, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.
- GitLab Advisory DatabaseOct 30, 2026
- GitHub Advisory DatabaseOct 29, 2026
- FIRST EPSSOct 23, 2026
- NIST NVDOct 22, 2026
- CVE.orgOct 21, 2026