theupdateframework python-tuf improper case sensitivity in delegation matching

Severity: medium · CVSS 4 · Published 2026-05-28

The python-tuf library, which provides a framework for secure software updates, contains a vulnerability in how it validates file paths on Windows systems. Due to inconsistent handling of uppercase and lowercase letters, an attacker who controls a specific update role could potentially bypass security restrictions to provide unauthorized software updates. This could lead to the installation of untrusted software on Windows-based client machines.

Technologies: tuf (PyPI). Vendors: PyPI.

Quick answers

Is This vulnerability exploited in the wild?
No. Junglewise Threat Intelligence has no report of This vulnerability being exploited in the wild.
How severe is This vulnerability?
Medium severity, with a CVSS score of 4, published 28 May 2026.
Which products and versions are affected?
tuf (PyPI) <= 6.0.0; The Update Framework Project The Update Framework <= 6.0.0.
Is there a fix for This vulnerability?
A patch was published on 2026-05-28: Fixed in version 7.0.0 Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is This vulnerability attacked?
It is attacked with local access, in a software library.
Am I affected?
Check whether you run tuf (PyPI) or The Update Framework Project The Update Framework at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

The vulnerability exists in the `DelegatedRole._is_target_in_pathpattern` function within `tuf/api/_payload.py`. It utilizes Python's `fnmatch.fnmatch`, which internally calls `os.path.normcase()`. On Windows, this causes path patterns to be lowercased, leading to case-insensitive matching that violates the TUF specification. An attacker controlling a delegated role with a case-colliding path pattern (e.g., 'Foo/*' vs 'foo/*') can intercept requests intended for a legitimate role if their role is ordered earlier in the delegation walk. This issue is specific to Windows clients and has been fixed in version 7.0.0 by switching to `fnmatch.fnmatchcase`.

Affected products

  • theupdateframework tuf <= 6.0.0

Timeline

  • 2026-05-18: disclosed: Advisory first published on GitHub
  • 2026-05-28: advisory: Advisory reviewed and updated on GitHub
  • 2026-05-28: patched: Fixed in version 7.0.0

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.