{"api_version":"1","generated_at":"2026-10-21T11:05:00+00:00","cve":"CVE-2026-112935","urls":{"html":"https://cve.report/CVE-2026-112935","api":"https://cve.report/api/cve/CVE-2026-112935.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-112935","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-112935"},"summary":{"title":"filelock: SoftFileLock stale-lock break removes a live lock file on a reused inode number and admits two holders","description":"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.","state":"PUBLISHED","assigner":"GitHub_M","published_at":"2026-10-20 15:17:16","updated_at":"2026-10-20 19:50:26"},"problem_types":["CWE-367","CWE-367 CWE-367: Time-of-check Time-of-use (TOCTOU) Race Condition"],"metrics":[{"version":"3.1","source":"security-advisories@github.com","type":"Secondary","score":"4.7","severity":"MEDIUM","vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N","baseScore":4.7,"baseSeverity":"MEDIUM","attackVector":"LOCAL","attackComplexity":"HIGH","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"HIGH","availabilityImpact":"NONE"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"4.7","severity":"MEDIUM","vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N","data":{"attackComplexity":"HIGH","attackVector":"LOCAL","availabilityImpact":"NONE","baseScore":4.7,"baseSeverity":"MEDIUM","confidentialityImpact":"NONE","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N","version":"3.1"}}],"references":[{"url":"https://github.com/tox-dev/filelock/releases/tag/4.2.1","name":"https://github.com/tox-dev/filelock/releases/tag/4.2.1","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/tox-dev/filelock/pull/843","name":"https://github.com/tox-dev/filelock/pull/843","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/tox-dev/filelock/commit/740ff666b62a88496c8d7394e4e6230605e4d62b","name":"https://github.com/tox-dev/filelock/commit/740ff666b62a88496c8d7394e4e6230605e4d62b","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/tox-dev/filelock/security/advisories/GHSA-fq56-3cx3-fjxp","name":"https://github.com/tox-dev/filelock/security/advisories/GHSA-fq56-3cx3-fjxp","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-112935","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-112935","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"tox-dev","product":"filelock","version":"affected >= 3.22.0, < 4.2.1","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"product":"filelock","vendor":"tox-dev","versions":[{"status":"affected","version":">= 3.22.0, < 4.2.1"}]}],"descriptions":[{"lang":"en","value":"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."}],"metrics":[{"cvssV3_1":{"attackComplexity":"HIGH","attackVector":"LOCAL","availabilityImpact":"NONE","baseScore":4.7,"baseSeverity":"MEDIUM","confidentialityImpact":"NONE","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-367","description":"CWE-367: Time-of-check Time-of-use (TOCTOU) Race Condition","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-10-20T14:32:25.740Z","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M"},"references":[{"name":"https://github.com/tox-dev/filelock/security/advisories/GHSA-fq56-3cx3-fjxp","tags":["x_refsource_CONFIRM"],"url":"https://github.com/tox-dev/filelock/security/advisories/GHSA-fq56-3cx3-fjxp"},{"name":"https://github.com/tox-dev/filelock/pull/843","tags":["x_refsource_MISC"],"url":"https://github.com/tox-dev/filelock/pull/843"},{"name":"https://github.com/tox-dev/filelock/commit/740ff666b62a88496c8d7394e4e6230605e4d62b","tags":["x_refsource_MISC"],"url":"https://github.com/tox-dev/filelock/commit/740ff666b62a88496c8d7394e4e6230605e4d62b"},{"name":"https://github.com/tox-dev/filelock/releases/tag/4.2.1","tags":["x_refsource_MISC"],"url":"https://github.com/tox-dev/filelock/releases/tag/4.2.1"}],"source":{"advisory":"GHSA-fq56-3cx3-fjxp","discovery":"UNKNOWN"},"title":"filelock: SoftFileLock stale-lock break removes a live lock file on a reused inode number and admits two holders"}},"cveMetadata":{"assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","assignerShortName":"GitHub_M","cveId":"CVE-2026-112935","datePublished":"2026-10-20T14:32:25.740Z","dateReserved":"2026-10-19T21:30:47.244Z","dateUpdated":"2026-10-20T14:32:25.740Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-20 15:17:16","lastModifiedDate":"2026-10-20 19:50:26","problem_types":["CWE-367","CWE-367 CWE-367: Time-of-check Time-of-use (TOCTOU) Race Condition"],"metrics":{"cvssMetricV31":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N","baseScore":4.7,"baseSeverity":"MEDIUM","attackVector":"LOCAL","attackComplexity":"HIGH","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"HIGH","availabilityImpact":"NONE"},"exploitabilityScore":1,"impactScore":3.6}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"112935","Ordinal":"1","Title":"filelock: SoftFileLock stale-lock break removes a live lock file","CVE":"CVE-2026-112935","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"112935","Ordinal":"1","NoteData":"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.","Type":"Description","Title":"filelock: SoftFileLock stale-lock break removes a live lock file"}]}}}