CVE-2026-123806

python-tuf: Platform-dependent delegation path matching

Published Nov 9, 2026 CVSS 3.1 · 4 Medium EPSS < 1% KEV · Not listed
Description
python-tuf is a Python reference implementation of The Update Framework (TUF). Prior to 7.0.0, DelegatedRole._is_target_in_pathpattern in tuf/api/_payload.py uses fnmatch.fnmatch, which applies os.path.normcase before matching and makes delegation path authorization case-insensitive on Windows. When a TUF repository has path-based delegations that differ only by case and an attacker-controlled role is visited before the legitimate role, ngclient can accept an attacker-provided target from the wrong delegation for a requested path. Linux and macOS clients are not affected because their path normalization does not change case. This issue is fixed in 7.0.0.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-qp9x-wp8f-qgjj tuf has platform-dependent delegation path matching
History
Type Values Removed Values Added
First Time appeared Theupdateframework
Theupdateframework python-tuf
Vendors & Products Theupdateframework
Theupdateframework python-tuf
Type Values Removed Values Added
Description python-tuf is a Python reference implementation of The Update Framework (TUF). Prior to 7.0.0, DelegatedRole._is_target_in_pathpattern in tuf/api/_payload.py uses fnmatch.fnmatch, which applies os.path.normcase before matching and makes delegation path authorization case-insensitive on Windows. When a TUF repository has path-based delegations that differ only by case and an attacker-controlled role is visited before the legitimate role, ngclient can accept an attacker-provided target from the wrong delegation for a requested path. Linux and macOS clients are not affected because their path normalization does not change case. This issue is fixed in 7.0.0.
Title python-tuf: Platform-dependent delegation path matching
Weaknesses CWE-178
References
Metrics cvssV3_1

{'score': 4, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Nov 9, 2026, 8:18 PM
Reserved
Nov 6, 2026, 3:27 PM
Status
Awaiting Analysis
Published
Nov 9, 2026, 10:18 PM
Modified
Nov 12, 2026, 10:18 PM
Severity
Moderate
Public date
Nov 9, 2026, 8:18 PM