Releases: cert-manager/cert-manager
v1.20.0-beta.0
Changes since v1.20.0-alpha.1
In this release, parentRef override annotations, Azure private DNS zone support, and configurable PEM size limits were added, while an ACME TXT record cleanup issue in CloudDNS and a potential controller panic from malformed DNS responses were fixed.
Feature
- Added
parentRefoverride annotations on the Certificate resource. (#8518, @hjoshi123) - Added support for azure private zones for dns01 issuer. (#8494, @hjoshi123)
- Added support for configuring PEM decoding size limits, allowing operators to handle larger certificates and keys. (#7642, @robertlestak)
Bug or Regression
- Fix an issue where ACME challenge TXT records are not cleaned up when there are many resource records in CloudDNS. (#8456, @tkna)
- Security (MODERATE): Fix a potential panic in the cert-manager controller when a DNS response in an unexpected order was cached. If an attacker was able to modify DNS responses (or if they controlled the DNS server) it was possible to cause denial of service for the cert-manager controller. (#8469, @SgtCoDFish)
Other (Cleanup or Flake)
- Promoting xlistenerset feature gate to listenerset (#8501, @hjoshi123)
- Switched to SSA for challenge finalizer updates (#8519, @inteon)
v1.19.4
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
v1.19.4 is a simple patch release to fix some reported vulnerabilities - notably CVE-2026-24051 and CVE-2025-68121. All users should upgrade.
Changes by Kind
Bug or Regression
- Bump go to address CVE-2025-68121 (#8526, @SgtCoDFish)
- Bump otel SDK to address GO-2026-4394 (#8531, @SgtCoDFish)
v1.18.6
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
v1.18.6 is a simple patch release to fix some reported vulnerabilities, most notably CVE-2025-68121.
NB: We didn't attempt to patch CVE-2026-24051 but that vulnerability affects macOS only, so cert-manager will be unaffected.
Changes by Kind
Bug or Regression
- Bump Go to address CVE-2025-68121 (#8525, @SgtCoDFish)
v1.19.3
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
This release contains three bug fixes, including a fix for the MODERATE severity DoS issue in GHSA-gx3x-vq4p-mhhv. All users should upgrade to the latest release.
Changes by Kind
Bug or Regression
- Fixed an infinite re-issuance loop that could occur when an issuer returns a certificate with a public key that doesn't match the CSR. The issuing controller now validates the certificate before storing it and fails with backoff on mismatch. (#8415, @cert-manager-bot)
- Fixed an issue where HTTP-01 challenges failed when the Host header contained an IPv6 address. This means that users can now issue IP address certificates for IPv6 address subjects. (#8436, @cert-manager-bot)
- Security (MODERATE): Fix a potential panic in the cert-manager controller when a DNS response in an unexpected order was cached. If an attacker was able to modify DNS responses (or if they controlled the DNS server) it was possible to cause denial of service for the cert-manager controller. (#8468, @SgtCoDFish)
Other (Cleanup or Flake)
- Bump go to 1.25.6 (#8459, @SgtCoDFish)
v1.18.5
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
This release contains three bug fixes, including a fix for the MODERATE severity DoS issue in GHSA-gx3x-vq4p-mhhv. All users should upgrade to the latest release.
Changes by Kind
Bug or Regression
- Fixed an infinite re-issuance loop that could occur when an issuer returns a certificate with a public key that doesn't match the CSR. The issuing controller now validates the certificate before storing it and fails with backoff on mismatch. (#8414, @cert-manager-bot)
- Fixed an issue where HTTP-01 challenges failed when the Host header contains an IPv6 address. This means that users can now issue IP address certificates for IPv6 address subjects. (#8437, @cert-manager-bot)
- Security (MODERATE): Fix a potential panic in the cert-manager controller when a DNS response in an unexpected order was cached. If an attacker was able to modify DNS responses (or if they controlled the DNS server) it was possible to cause denial of service for the cert-manager controller. (#8467, @SgtCoDFish)
Other (Cleanup or Flake)
- Bump go to 1.24.12 (#8460, @SgtCoDFish)
v1.20.0-alpha.1
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
This is a pre-release for cert-manager v1.20.0. Please help with testing!
Changed since v1.20.0-alpha.0
This alpha release adds experimental XListenerSet support, NetworkPolicy and CRD selectable field features, fixes critical bugs including an infinite re-issuance loop and IPv6 HTTP-01 challenge issues, patches security vulnerabilities (CVE-2025-61727, CVE-2025-61729), promotes OtherNames to Beta and DefaultPrivateKeyRotationPolicyAlways to GA, and changes the default container UID/GID from 1000/0 to 65532/65532.
Feature
- Added experimental
XListenerSetfeature gate (#8394, @hjoshi123) - Add a set of flags to permit setting NetworkPolicy across all deployed containers.
Remove redundant global IP ranges from example policies. (#8370, @jcpunk) - Add selectable fields to custom resource definitions for .spec.issuerRef.{group, kind, name} (#8256, @tareksha)
- Added 'extraContainers' helm chart value, allowing the deployment of arbitrary sidecar containers within the cert-manager operator pod. This can be used to support, for e.g., AWS IAM Roles Anywhere for Route53 DNS01 verification. (#8355, @dancmeyers)
- Added support for unhealthyPodEvictionPolicy in PodDisruptionBudget (#7728, @jcpunk)
- For Venafi provider, read
venafi.cert-manager.io/custom-fieldsannotation on Issuer/ClusterIssuer and use it as base with override/append capabilities on Certificate level. (#8301, @k0da) - Improve error message when CA issuers are misconfigured to use a clashing secret name (#8374, @majiayu000)
- Introduce a new Ingress annotation
acme.cert-manager.io/http01-ingress-ingressclassnameto overridehttp01.ingress.ingressClassNamefield in HTTP-01 challenge solvers. (#8244, @lunarwhite) - Update
global.nodeSelectorto helm chart to perform amergeand allow for a singlenodeSelectorto be set across all services. (#8195, @StingRayZA) - Vault issuers will now include the Vault server address as one of the default audiences on generated service account tokens. (#8228, @terinjokes)
Bug or Regression
- Changes to the Duration and RenewBefore annotations on ingress and gateway-api resources will now trigger certificate updates. (#8232, @eleanor-merry)
- Fixed an infinite re-issuance loop that could occur when an issuer returns a certificate with a public key that doesn't match the CSR. The issuing controller now validates the certificate before storing it and fails with backoff on mismatch. (#8403, @calm329)
- Fixed an issue where HTTP-01 challenges failed when the Host header containing an IPv6 address. This means that users can now issue IP address certificates for IPv6 address subjects. (#8424, @SlashNephy)
- Fixed the HTTP-01 Gateway solver creating invalid HTTPRoutes by not setting spec.hostnames when the challenge DNSName is an IP address. (#8443, @alviss7)
- Update Go to
v1.25.5to fixCVE-2025-61727andCVE-2025-61729(#8290, @octo-sts[bot])
Other (Cleanup or Flake)
- Promoted the OtherNames feature to Beta and enabled it by default (#8288, @wallrj-cyberark)
- The default container user (UID) is now 65532 (previously 1000) and the default container group (GID) is now 65532 (previously 0) (#8408, @wallrj-cyberark)
- The feature-gate DefaultPrivateKeyRotationPolicyAlways moved from Beta to GA and can no longer be disabled. (#8287, @wallrj-cyberark)
- Update cert-manager's ACME client, forked from golang/x/crypto (#8268, @SgtCoDFish)
- Use the latest version of Kyverno (1.16.2) in the best-practice installation tests (#8389, @wallrj-cyberark)
- Rebranding of the Venafi Issuer to CyberArk (#8215, @iossifbenbassat123)
- Add GWAPI documentation to NOTES.TXT in helm chart (#8353, @jaxels10)
- We stopped testing with Coutour due to it not supporting the new XListenerSet resource, and moved to kgateway. (#8426, @hjoshi123)
Dependencies Changes
Added
Changed
- cloud.google.com/go/auth: v0.17.0 → v0.18.1
- github.com/Azure/azure-sdk-for-go/sdk/azcore: v1.19.1 → v1.21.0
- github.com/Azure/azure-sdk-for-go/sdk/azidentity: v1.13.0 → v1.13.1
- github.com/AzureAD/microsoft-authentication-library-for-go: v1.5.0 → v1.6.0
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp: v1.29.0 → v1.30.0
- github.com/Masterminds/semver/v3: v3.3.1 → v3.4.0
- github.com/Venafi/vcert/v5: v5.12.2 → v5.12.3
- github.com/akamai/AkamaiOPEN-edgegrid-golang/v12: v12.1.0 → v12.3.0
- github.com/aws/aws-sdk-go-v2/config: v1.31.16 → v1.32.7
- github.com/aws/aws-sdk-go-v2/credentials: v1.18.20 → v1.19.7
- github.com/aws/aws-sdk-go-v2/feature/ec2/imds: v1.18.12 → v1.18.17
- github.com/aws/aws-sdk-go-v2/internal/configsources: v1.4.12 → v1.4.17
- github.com/aws/aws-sdk-go-v2/internal/endpoints/v2: v2.7.12 → v2.7.17
- github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding: v1.13.2 → v1.13.4
- github.com/aws/aws-sdk-go-v2/service/internal/presigned-url: v1.13.12 → v1.13.17
- github.com/aws/aws-sdk-go-v2/service/route53: v1.59.2 → v1.62.1
- github.com/aws/aws-sdk-go-v2/service/sso: v1.30.0 → v1.30.9
- github.com/aws/aws-sdk-go-v2/service/ssooidc: v1.35.4 → v1.35.13
- github.com/aws/aws-sdk-go-v2/service/sts: v1.39.0 → v1.41.6
- github.com/aws/aws-sdk-go-v2: v1.39.5 → v1.41.1
- github.com/aws/smithy-go: v1.23.2 → v1.24.0
- github.com/cncf/xds/go: 2ac532f → 0feb691
- github.com/digitalocean/godo: v1.167.0 → v1.173.0
- github.com/envoyproxy/go-control-plane/envoy: v1.32.4 → v1.35.0
- github.com/envoyproxy/go-control-plane: v0.13.4 → 75eaa19
- github.com/go-jose/go-jose/v4: v4.1.2 → v4.1.3
- github.com/go-openapi/jsonpointer: v0.22.1 → v0.22.4
- github.com/go-openapi/jsonreference: v0.21.2 → v0.21.4
- github.com/go-openapi/swag/jsonname: v0.25.1 → v0.25.4
- github.com/google/gnostic-models: v0.7.0 → v0.7.1
- github.com/google/pprof: d1b30fe → 27863c8
- github.com/googleapis/enterprise-certificate-proxy: v0.3.6 → v0.3.11
- github.com/googleapis/gax-go/v2: v2.15.0 → v2.16.0
- github.com/hashicorp/vault/sdk: v0.20.0 → v0.21.0
- github.com/miekg/dns: v1.1.68 → v1.1.72
- github.com/onsi/ginkgo/v2: v2.22.0 → v2.27.2
- github.com/onsi/gomega: v1.36.1 → v1.38.2
- github.com/sagikazarmark/locafero: v0.10.0 → v0.11.0
- github.com/spf13/afero: v1.14.0 → v1.15.0
- github.com/spf13/cast: v1.9.2 → v1.10.0
- github.com/spf13/cobra: v1.10.1 → v1.10.2
- github.com/spf13/viper: v1.20.1 → v1.21.0
- github.com/spiffe/go-spiffe/v2: v2.5.0 → v2.6.0
- go.etcd.io/bbolt: v1.4.2 → v1.4.3
- go.etcd.io/etcd...
v1.19.2
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
We updated Go to fix some vulnerabilities in the standard library.
📖 Read the full 1.19 release notes on the cert-manager.io website before upgrading.
Changes since v1.19.1
Bug or Regression
- Address false positive vulnerabilities
CVE-2025-47914andCVE-2025-58181which were reported by Trivy. (#8283, @SgtCoDFish) - Update Go to
v1.25.5to fixCVE-2025-61727andCVE-2025-61729(#8294, @wallrj-cyberark) - Update
global.nodeSelectorto helm chart to perform amergeand allow for a singlenodeSelectorto be set across all services. (#8233, @cert-manager-bot)
Other (Cleanup or Flake)
- Update cert-manager's ACME client, forked from
golang/x/crypto(#8270, @SgtCoDFish) - Updated Debian 12 distroless base images (#8326, @wallrj-cyberark)
v1.18.4
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
We updated Go to fix some vulnerabilities in the standard library.
📖 Read the full 1.18 release notes on the cert-manager.io website before upgrading.
Changes since v1.18.3
Bug or Regression
- Address false positive vulnerabilities
CVE-2025-47914andCVE-2025-58181which were reported by Trivy. (#8282, @SgtCoDFish) - Update Go to
v1.24.11to fixCVE-2025-61727andCVE-2025-61729(#8295, @wallrj-cyberark)
Other (Cleanup or Flake)
- Update cert-manager's ACME client, forked from
golang/x/crypto(#8271, @SgtCoDFish) - Updated Debian 12 distroless base images (#8328, @wallrj-cyberark)
v1.20.0-alpha.0
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
⚠️ This is a pre-release. For testing only!
Changes since v1.19.0
Feature
- Add built-in "Ready" status metrics for ClusterIssuer and Issuer resources. (#8188, @mikeluttikhuis)
- Add support for specifying
imagePullSecretsin thestartupapicheck-jobHelm template to enable pulling images from private registries. (#8186, @mathieu-clnk)
Bug or Regression
- Adds logs for cases when acme server returns us a fatal error in the order controller (#8199, @Peac36)
- BUGFIX: in case kind or group in the issuerRef of a Certificate was omitted, upgrading to 1.19.x incorrectly caused the certificate to be renewed (#8160, @inteon)
- Fix unregulated retries with the DigitalOcean DNS-01 solver (#8221, @wallrj-cyberark)
- Add full detailed DNS-01 errors to the events attached to the Challenge, for easier debugging (#8221, @wallrj-cyberark)
- Revert API defaults for issuer reference kind and group introduced in 0.19.0 (#8173, @erikgb)
- When Prometheus monitoring is enabled, the metrics label is now set to the intended value of
cert-manager. Previously, it was set depending on various factors (namespace cert-manager is installed in and/or Helm release name). (#8162, @LiquidPL)
v1.19.1
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
We reverted the CRD-based API defaults for Certificate.Spec.IssuerRef and CertificateRequest.Spec.IssuerRef after they were found to cause unexpected certificate renewals after upgrading to 1.19.0. We will try re-introducing these API defaults in cert-manager 1.20.
We fixed a bug that caused certificates to be re-issued unexpectedly if the issuerRef kind or group was changed to one of the "runtime" default values.
We upgraded Go to 1.25.3 to address the following security vulnerabilities: CVE-2025-61724, CVE-2025-58187, CVE-2025-47912, CVE-2025-58183, CVE-2025-61723, CVE-2025-58186, CVE-2025-58185, CVE-2025-58188, and CVE-2025-61725.
📖 Read the full 1.19 release notes on the cert-manager.io website before upgrading.
Changes since v1.19.0:
Bug or Regression
- BUGFIX: in case kind or group in the
issuerRefof a Certificate was omitted, upgrading to1.19.xincorrectly caused the certificate to be renewed (#8175, @cert-manager-bot) - Bump Go to 1.25.3 to fix a backwards incompatible change to the validation of DNS names in X.509 SAN fields which prevented the use of DNS names with a trailing dot (#8177, @wallrj-cyberark)
- Revert API defaults for issuer reference kind and group introduced in 0.19.0 (#8178, @cert-manager-bot)