LiveActive security incident?Get immediate response
CVE Record

CVE-2026-22701: filelock Time-of-Check-Time-of-Use (TOCTOU) Symlink Vulnerability in SoftFileLock

filelock is a platform-independent file lock for Python. Prior to version 3.20.3, a TOCTOU race condition vulnerability exists in the SoftFileLock implementation of the filelock package. An attacker with local filesystem access and permission to create symlinks can exploit a race condition between the permission validation and file creation to cause lock operations to fail or behave unexpectedly. The vulnerability occurs in the _acquire() method between raise_on_not_writable_file() (permission check) and os.open() (file creation). During this race window, an attacker can create a symlink at the lock file path, potentially causing the lock to operate on an unintended target file or leading to denial of service. This issue has been patched in version 3.20.3.

MediumCVSS 5.3Not KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

CVE-2026-22701 affects the Python filelock package before 3.20.3. A local user who can create symlinks near a lock file may race the lock creation process, causing locking to fail or target an unexpected file. Business impact is mainly denial of service or unreliable application behavior, not remote compromise.

Executive priority

Treat as a moderate-priority dependency update. Prioritize shared systems, multi-user hosts, build infrastructure, and services using writable temporary directories for lock files. It is less urgent than remotely exploitable vulnerabilities but should be remediated through normal patch cycles.

Technical view

The issue is a TOCTOU race in SoftFileLock._acquire() between raise_on_not_writable_file() and os.open(). With local filesystem access and symlink creation rights, an attacker may influence the lock path during the race window. The CVE lists CWE-362, CWE-367, and CWE-59. Fixed in filelock 3.20.3.

Likely exposure

Exposure is limited to systems using tox-dev filelock versions before 3.20.3, specifically SoftFileLock, where untrusted local users can interact with the lock file location. Network-only attackers are not indicated by the provided sources.

Exploitation context

The CVSS vector is local, high complexity, low privileges, no user interaction. The source bundle does not indicate known active exploitation, and KEV is false. Practical risk depends on whether attackers can write or create symlinks in directories used for lock files.

Researcher notes

The advisory describes a race between permission validation and file creation in SoftFileLock. The stated outcomes are unexpected lock behavior, unintended target file interaction, or denial of service. Public sources provided do not claim confidentiality impact, remote exploitation, or active exploitation.

Mitigation direction

  • Upgrade filelock to version 3.20.3 or later.
  • Identify transitive dependencies that bundle or pin filelock below 3.20.3.
  • Restrict untrusted local write access to directories used for lock files.
  • Review vendor advisory and commits for implementation-specific guidance.

Validation and detection

  • Inventory Python environments for installed filelock versions below 3.20.3.
  • Confirm whether applications use SoftFileLock rather than other locking modes.
  • Review lock file paths for shared or untrusted writable directories.
  • Verify updated deployments resolve filelock to 3.20.3 or later.
Prepared
Confidence
high
Sources
5

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-362: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cwe · low confidence lookup

CWE-367: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cwe · low confidence lookup

CWE-59: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-22701 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Medium
CVSS
5.3 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
0Timeline events
0ADP providers
4Source links

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
5.3CVSS 3.1MediumCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H14.2Primary CVE score

Vulnerability scoring details

Base CVSS 3.1 score

5.3Medium
CVSS 3.1 vector shape for CVE-2026-22701Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
tox-devfilelock< 3.20.3Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-362 · source CWE mapping

Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.

CWE-367 · source CWE mapping

Time-of-check Time-of-use (TOCTOU) Race Condition

Time-of-check Time-of-use (TOCTOU) Race Condition represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.

CWE-59 · source CWE mapping

Improper Link Resolution Before File Access ('Link Following')

Improper Link Resolution Before File Access ('Link Following') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.