Read the docs
TI-2021-17970 Aliases CVE-2021-41131GHSA-wjw6-2cqr-j4qr

Client metadata path-traversal in python-tuf

Priority MEDIUM 41CWE-22Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
High
Impact type
—
Confidentiality · integrity · availability
None · High · High
Fix status
Fixed

Attack profile from CVSS 3.1 · NVD. Fix status from CNA and GitHub.

Summary

python-tuf is a Python reference implementation of The Update Framework (TUF). In both clients (`tuf/client` and `tuf/ngclient`), there is a path traversal vulnerability that in the worst case can overwrite files ending in `.json` anywhere on the client system on a call to `get_one_valid_targetinfo()`. It occurs because the rolename is used to form the filename, and may contain path traversal characters (ie `../../name.json`). The impact is mitigated by a few facts: It only affects implementations that allow arbitrary rolename selection for delegated targets metadata, The attack requires the ability to A) insert new metadata for the path-traversing role and B) get the role delegated by an existing targets metadata, The written file content is heavily restricted since it needs to be a valid, signed targets file. The file extension is always .json. A fix is available in version 0.19 or newer. There are no workarounds that do not require code changes. Clients can restrict the allowed character set for rolenames, or they can store metadata in files named in a way that is not vulnerable: neither of these approaches is possible without modifying python-tuf.

Why it matters now

EPSS 0.0145 73rd percentileScored 2026-11-07
Fix Fixed python-tuf (theupdateframework): 0.19.0tuf (PyPI): 0.19.0

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
theupdateframeworkpython-tufbefore 0.19.00.19.0Patch availableCNA
—tuf (PyPI)before 0.19.00.19.0Patch availableGHSA-wjw6-2cqr-j4qr
  • python-tuf Vendortheupdateframework Affected before 0.19.0 Fixed in 0.19.0 Patch available CNA
  • tuf (PyPI) Vendor— Affected before 0.19.0 Fixed in 0.19.0 Patch available GHSA-wjw6-2cqr-j4qr

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:linuxfoundation:the_update_framework:*:*:*:*:*:python:*:*up to 0.18.1Vulnerablebackstage
  • cpe:2.3:a:linuxfoundation:the_update_framework:*:*:*:*:*:python:*:* Versions up to 0.18.1 Vulnerable ·backstage

Remediation

  • Fix · CNA python-tuf (theupdateframework) Fixed in 0.19.0
  • Fix · GHSA-wjw6-2cqr-j4qr tuf (PyPI) Fixed in 0.19.0 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2021-41131
  2. 2026-10-03 Alias added: GHSA-wjw6-2cqr-j4qr

References

  • TI-2026-19908 go-tuf Path Traversal in TAP 4 Multirepo Client Allows Arbitrary File Write via Malicious Repository Names CVSS 3.1MEDIUM 4.7
  • TI-2024-31823 Incorrect delegation lookups can make go-tuf download the wrong artifact CVSS 4.0HIGH 8.2
  • TI-2022-11717 No protection against rollback attacks in go-tuf CVSS 3.1HIGH 8.8
  • TI-2020-11935 Invalid root may become trusted root in The Update Framework (TUF) CVSS 3.1HIGH 8.7
  • TI-2026-19332 go-tuf affected by client DoS via malformed server response CVSS 3.1HIGH 7.5
  • TI-2026-19333 go-tuf improperly validates the configured threshold for delegations CVSS 3.1HIGH 7.5

Sources