zot create-only policy allows overwrite attempts of existing latest tag (update permission not required)
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- None · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-863.
Summary
zot is ancontainer image/artifact registry based on the Open Container Initiative Distribution Specification. From 1.3.0 to 2.1.14, zot’s dist-spec authorization middleware infers the required action for PUT /v2/{name}/manifests/{reference} as create by default, and only switches to update when the tag already exists and reference != "latest". As a result, when latest already exists, a user who is allowed to create (but not allowed to update) can still pass the authorization check for an overwrite attempt of latest. This vulnerability is fixed in 2.1.15.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| project-zot | zot | 1.3.0 to before v2.1.15 | v2.1.15 | Patch available | CNA |
| — | zotregistry.dev/zot/v2 (Go) | before 2.1.15 | 2.1.15 | Patch available | GHSA-85jx-fm8m-x8c6 |
| — | zotregistry.dev/zot (Go) | 1.3.0-20210831063041-c8779d9e87d9 – 1.4.4-20251014054906-73eef25681af | — | No fix listed | GHSA-85jx-fm8m-x8c6 |
- zot Vendorproject-zot Affected 1.3.0 to before v2.1.15 Fixed in v2.1.15 Patch available CNA
- zotregistry.dev/zot/v2 (Go) Vendor— Affected before 2.1.15 Fixed in 2.1.15 Patch available GHSA-85jx-fm8m-x8c6
- zotregistry.dev/zot (Go) Vendor— Affected 1.3.0-20210831063041-c8779d9e87d9 – 1.4.4-20251014054906-73eef25681af Fixed in — No fix listed GHSA-85jx-fm8m-x8c6
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:zotregistry:zot:*:*:*:*:*:*:*:* | 1.3.0 to before 2.1.15 | Vulnerable | project-zot |
- cpe:2.3:a:zotregistry:zot:*:*:*:*:*:*:*:* Versions 1.3.0 to before 2.1.15 Vulnerable ·project-zot
Remediation
- Fix · CNA zot (project-zot) Fixed in v2.1.15
- Fix · GHSA-85jx-fm8m-x8c6 zotregistry.dev/zot/v2 (Go) Fixed in 2.1.15 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-31801
- 2026-10-03 Alias added: GHSA-85jx-fm8m-x8c6
References
More project-zot Zot vulnerabilities
- TI-2025-16993 IdP group membership revocation ignored in zot CVSS 3.1HIGH 7.3
- TI-2024-26792 Cache driver GetBlob() allows read access to any blob without access control check CVSS 3.1MEDIUM 4.3
Sources
- CVE-2026-31801 · CVE Program
- CVE-2026-31801 · NVD
- FIRST EPSS
- GHSA-85jx-fm8m-x8c6 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences