Change8

v3.1.0

Breaking Changes
📦 docker-registryView on GitHub →
1 breaking6 features🐛 15 fixes🔧 9 symbols

Summary

This stable release introduces tag pagination support and addresses critical security vulnerabilities (CVE-2026-35172, CVE-2026-33540). It also mandates upgrading the minimum required Go version to 1.25.

⚠️ Breaking Changes

  • Support for go1.23 and go1.24 has been dropped; users must now use go1.25 or newer.

Migration Steps

  1. Ensure your build environment uses Go 1.25 or newer, as support for go1.23 and go1.24 has been removed.

✨ New Features

  • Added support for tag pagination.
  • Extracted redis configuration to a separate struct.
  • Switched UUIDs to use UUIDv7.
  • Made graceful shutdown test more robust.
  • Exposed `useFIPSEndpoint` option for the S3 storage driver.
  • Added Cloudfleet Container Registry to the list of adopters.

🐛 Bug Fixes

  • Fixed security vulnerabilities related to CVE-2026-35172 and CVE-2026-33540.
  • Fixed default credentials issue in the Azure storage provider.
  • Implemented JWK thumbprint generation for Ed25519 public keys.
  • Resolved issue #4478 by using a temporary file for non-append writes.
  • Set OpenTelemetry (OTEL) traces to be disabled by default.
  • Fixed build for S3 driver on the 386 architecture.
  • Fixed loglevel parameter for the S3 driver.
  • Fixed a data race condition found in the TestSchedule test.
  • Fixed thumbprint calculation for ecdsa keys, using X/Y instead of Gx/Gy.
  • Fixed broken link to the Docker Hub fair use policy in documentation.
  • Fixed redis CAs configuration in `registry/handlers/app`.
  • Corrected log formatting for upstream challenge responses.
  • Fixed a logging regression affecting manifest HEAD requests.
  • Fixed notification filtering to correctly handle cases where mediatypes is empty when using actions.
  • Fixed broken Azure e2e storage tests in CI.

Affected Symbols