Skip to content
OpenAdvisories
High · 8.1 CVE-2026-61833 EUVD-2026-83187GHSA-qg67-7m6v-qg25GO-2026-6527

zot: Bearer authentication maps DELETE to push scope, allowing unauthorized deletion

Published Sep 18, 2026 · Updated Sep 23, 2026 · Assigned by GitHub_M

Description

zot is a container image and artifact registry based on the Open Container Initiative Distribution Specification. Prior to 2.1.18, the bearer authentication handler in pkg/api/authn.go maps every HTTP method other than GET and HEAD to the push action, so DELETE requests are not checked for the distinct delete permission. Bearer-authenticated requests also bypass the fine-grained DistSpecAuthzHandler path in pkg/api/authz.go, while DeleteManifest and DeleteBlob perform no independent delete-permission check. A remote attacker with a bearer token limited to pull and push actions can therefore delete manifests and blobs within the token's repository scope, making images unavailable and allowing repository history to be altered despite the token lacking delete authorization. This issue is fixed in version 2.1.18.

Affected products

VendorProductAffectedFixed
project-zot zot < 2.1.18 —

Affected packages

EcosystemPackageAffectedFixedRecord
Go zotregistry.dev/zot all versions — GO-2026-6527
Go zotregistry.dev/zot/v2 < 2.1.18 2.1.18 GHSA-qg67-7m6v-qg25

References