CVE-2026-41888: Distribution tag deletion bypasses storage delete configuration

CVE-2026-41888 · Severity: medium · CVSS 6.5 · Published 2026-05-14

Distribution is a toolkit used to store and deliver container images, commonly used in Docker registries. A flaw allows users to delete image tags even when the system administrator has explicitly disabled deletion in the configuration. This could lead to service disruptions or supply chain issues if critical image tags are removed from a registry that was intended to be immutable.

Technologies: github.com/distribution/distribution (Go), github.com/distribution/distribution/v3 (Go). Vendors: Go.

Quick answers

Is CVE-2026-41888 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-41888 being exploited in the wild.
How severe is CVE-2026-41888?
Medium severity, with a CVSS score of 6.5, published 14 May 2026.
Which products and versions are affected?
Distribution < 3.1.1; github.com/distribution/distribution (Go) <= 2.8.3, SEMVER:introduced=0, SEMVER:introduced=0,last_affected=2.8.3; github.com/distribution/distribution/v3 (Go) < 3.1.1, SEMVER:introduced=0,fixed=3.1.1.
Is there a fix for CVE-2026-41888?
Yes. github.com/distribution/distribution/v3 (Go): upgrade to 3.1.1 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-41888 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-41888?
Check whether you run Distribution, github.com/distribution/distribution (Go) or github.com/distribution/distribution/v3 (Go) 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.

How to fix

  • github.com/distribution/distribution/v3 (Go): upgrade to 3.1.1 or later
    go get github.com/distribution/distribution/v3@v3.1.1

Technical details

An authorization bypass exists in Distribution's manifest handler. While digest-based manifest deletion correctly respects the 'storage.delete.enabled' configuration, the tag deletion path via 'DELETE /v2/<name>/manifests/<tag>' fails to consult this setting. Specifically, the 'DeleteManifest' function in 'registry/handlers/manifests.go' calls 'tagService.Untag()' directly, which interacts with the storage driver to remove the tag path without checking the 'registry.deleteEnabled' flag. This allows any network-reachable API client to remove tags from repositories. The issue is resolved in version 3.1.1.

Affected products

  • Distribution Distribution (Docker Registry) < 3.1.1

Identifiers

  • CVE-2026-41888
  • GHSA-6pjf-3r9x-m592
  • GO-2026-5185

Timeline

  • 2026-05-01: advisory: GitHub Security Advisory published
  • 2026-05-14: disclosed: CVE published to NVD

References

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