Containers and Virtualization Release Notes
Updates for containers, orchestration, virtual machines, and tools that manage them.
Products (11)
Latest Containers and Virtualization Updates
- Nov 10, 2026
- Date parsed from source:Nov 10, 2026
- First seen by Releasebot:Nov 11, 2026
v5.8.10
Podman fixes three security flaws affecting auto-update unit selection, image validation, and seccomp socket restrictions.
Security
- Addresses CVE-2026-121885, untrusted image labels could be used to trick podman auto-update into restarting incorrect systemd units GHSA-55rm-rwr7-q2wr.
- Addresses CVE-2026-111361, malicious containers images could be able to bypass Digest and Signature validation GHSA-pggw-qqjf-6cxw.
- Addresses CVE-2026-123876, default seccomp profile socket deny rule could be bypass by a malicious container.
- Nov 10, 2026
- Date parsed from source:Nov 10, 2026
- First seen by Releasebot:Oct 27, 2026
- Modified by Releasebot:Nov 11, 2026
v6.2.0
Podman releases a security and maintenance update with fixes for container image validation and seccomp vulnerabilities, plus new options for image pushes, Kubernetes workflows, Quadlet, and container management. It also improves Podman machine reliability, API compatibility, health checks, and numerous bugs.
Security
- Addresses CVE-2026-121885, untrusted image labels could be used to trick podman auto-update into restarting incorrect systemd units GHSA-55rm-rwr7-q2wr.
- Addresses CVE-2026-111361, malicious containers images could be able to bypass Digest and Signature validation GHSA-pggw-qqjf-6cxw.
- Addresses CVE-2026-123876, default seccomp profile socket deny rule could be bypass by a malicious container.
Features
- The podman push command now supports a new option, --platform, which selects and pushes a single platform-specific manifest instead of the entire list.
- The podman kube play command now supports a new option, --validate, which determines how unrecognized YAML fields are handled (#18332).
- The podman kube play command now supports a new option, --label, to set labels on created containers, pods, volumes, and secrets (#26450).
- The podman kube play command can now create multiple pods if more than 1 replica is requested by a deployment using the new --multiple-pods option (#26769).
- The podman kube play --build command now supports building images from subdirectories of the main context directory (#28148).
- Quadlet .container files now support a new key, Umask, to set the default umask for the created container (#25278).
- All Quadlet files now support a new key, SetMountsDependency, configuring whether the generated unit will use RequiresMountsFor, WantsMountsFor, or no dependency at all on required source paths (#29946).
- The podman farm list command now supports two new options, --quiet, which will print only the names of active farms, and --noheading, which omits column headers from the output.
- The podman artifact ls command now supports two new options, --format=json, which will output machine-readable JSON, and --quiet, which prints only artifact digests.
- The podman create command now supports a new option, --passwd, to add entries to /etc/passwd in the container (this has previously been available with podman run).
- The podman info command now includes detailed information on the features supported by OCI runtimes.
- The podman events --filter command now supports a new filter, network=, to filter to events pertaining to a specific network (#29387).
- The podman auto-update command has been enabled on the remote Podman client.
- The StartInterval field in image healthcheck configuration is now respected, allowing images to configure startup healthchecks (#27724).
- The podman image scp command now supports two new options, --compression-format and --compression-level, to compress data during transfer (#23192).
- The podman auto-update command now supports a new option, --filter, to selectively update only containers that match the given filters.
- The podman ps --sort command now allows sorting by pod.
- The podman ps --filter command now supports a new filter, status!, which matches containers not in the given state (#21398).
Changes
- Podman now requires Go v1.26 or higher to build.
- The Podman machine WSL provider now has native systemd support, existing machines continue to be supported for now with our old custom systemd setup. We require at least WSL version 2.5.1 now, although we recommend using at least 2.7.5 for proper nftables networking support.
- The podman kube play command now uses the securityContext.seccompProfile fields in Kubernetes YAML for Seccomp configuration. Support for the existing annotation-based configuration of Seccomp is now deprecated, and will be removed with Podman 7.0.
- The podman inspect command on containers now includes three new fields, DNSNames (containing all names the container can be accessed via), IsInitCtr (whether the container is an init container), and InitContainerType (what type of init container this is, if it is one) (#29811).
- The podman inspect command on containers now only includes user-added DNS aliases in the Aliases field, which previously displayed all DNS aliases, improving Docker compatibility.
- The podman inspect command on containers now properly populates the ConsoleSize field for running containers (#28368).
- Systemd units created by Podman healthchecks are now named much more clearly (libpod-healthcheck-$CONTAINERID-$randsuffix.service) (#29373).
- Signal proxying is now enabled for attached podman exec commands. As such, killing a podman exec command with Control-C or similar should now also kill the processes started in the container (similar to how podman run already works) (#19486).
- The deprecated --cpu-rt-period and --cpu-rt-runtime options for podman create, podman run, podman update, and podman container clone are now hidden and undocumented. They have not been functional since the removal of cgroups v1 support and will be removed entirely in Podman v7.
- The --health-startup-interval option to podman create, podman run, and podman update has a new alias, --health-start-interval.
- When a startup healthcheck interval is specified, but no startup healthcheck command, the standard healthcheck command will be used instead.
- When using the journald event driver, timestamps are no longer included in logged events, as journald includes a timestamp already (#29835).
- Quadlet can now create template instances from instance-specific drop-in directories without requiring an explicit instance file or symlink (#27636).
Bugfixes
- Fixed a bug where passing an empty file to the --ignorefile option to podman build would cause the .dockerignore or .containerignore file in the context directory to be used, instead of not using an ignorefile at all (#25147).
- Fixed a bug where the Pod= key in Quadlet .container files did not expand the %N specifier (#29108).
- Fixed a bug where containers created with --userns=auto would report having a private user namespace in podman inspect after they started, but not when they were first created.
- Fixed a bug where logging was configured too late in the Podman init process to print errors from parsing configuration files (#25362).
- Fixed a bug where the podman system prune --build command could fail if a build container was removed while it was running.
- Fixed a bug where copy events from podman machine cp were not properly displayed by the remote Podman client.
- Fixed a bug where the podman farm build --tag command would fail if given a tag including a colon (#25039).
- Fixed a bug where the podman machine init --image command would fail when given a read-only disk image.
- Fixed a bug where the podman machine start and podman machine init --now commands could hang on Windows systems using the Hyper-V provider if the VM failed to start (#29455).
- Fixed a bug where the podman machine start command on Windows (both Hyper-V and WSL providers) would sometimes fail due to leftover processes from previous machines (#29474).
- Fixed a bug where the podman machine start command could hang indefinitely if the VM failed to start properly (#29880).
- Fixed a bug where the podman machine start command could create a VM that cannot be connected to on Windows if the host was shut down or restarted when the VM was running (#29971).
- Fixed a bug where the podman machine init command on Windows when using the Hyper-V provider did not correctly detach the file server process, causing VMs to lose access to host shares when the console that ran podman machine init closed (#29573).
- Fixed a bug where the podman kube play command incorrectly handled emptyDir volumes with medium: Memory, causing them to not be shared between containers in the pod and to ignore the sizeLimit parameter (#29555).
- Fixed a bug where the remote Podman client's podman kube play command incorrectly handled authentication credentials in API requests.
- Fixed a bug where volumes created by the podman volume import command would not adjust their permissions on being mounted into a container (#25442).
- Fixed a bug where the podman build command could leak temporary directories if a build failed (#22642).
- Fixed a bug where containers created with --userns=keep-id would use an image-specified user instead of forcing the same UID/GID in use on the host (#29600).
- Fixed a bug where the remote Podman client could not function when connecting over SSH to a server which does not support the direct-streamlocal channel type (#27814).
- Fixed a bug where the remote Podman client's podman push, podman artifact push, and podman manifest push commands would push an unsigned image instead of failing when the --sign-by or --sign-by-sigstore-private-key options were used.
- Fixed a bug where creating a container with --userns=auto that had overlay volume mounts would fail (#28758).
- Fixed a bug where volume subpaths including a = character in the path were handled incorrectly.
- Fixed a bug where the remote Podman client was unable to add subjects to artifacts with the podman manifest annotate --subject and podman manifest add --artifact subject commands.
- Fixed a bug where the remote Podman client's podman manifest add --artifact command could hang under some circumstances.
- Fixed a bug where the podman manifest annotate --os-features command did not properly save the OS features in the manifest.
- Fixed a bug where the remote Podman client's podman image prune --filter did not correctly handle filters with values including the = character.
- Fixed a bug where Quadlet .volume units did not recreate the volume if it was removed in Podman (#27862).
- Fixed a bug where containers with a failing startup healthcheck would not immediately transition to unhealthy when the startup period ended.
- Fixed a bug where containers started with --sdnotify=healthy and a HealthStartPeriod longer than the unit's TimeoutStartSec could be automatically killed by systemd if the healthcheck took an extended period to become healthy (#27290).
- Fixed a bug where the --pids-limit=0 argument to podman run and podman create was incorrectly setting a process limit, instead of removing the limit, when the runc OCI runtime was in use (#29826).
- Fixed a bug where Quadlet did not search the parent directory of symlinked unit files for drop-in configuration files, which broke using Quadlets defined by root as a rootless user if drop-in overrides were in use (#29821).
- Fixed a bug where the podman ps and podman pod ps commands would fail when the --format argument was used with a format string including .Label (#29831).
- Fixed a bug where the podman cp command did not respect volume subpaths when copying into a mounted named or image volumes in a container that is not running (#29840 and #29857).
- Fixed a bug where volume plugins were initialized when they were not required, which could cause early-boot containers started by Quadlet to error on missing plugins that the container was not actually using (#28110).
- Fixed a bug where the podman export command, when run by a rootless user on a container created with --userns=keep-id, would create an archive with incorrect UIDs and GIDs (#29856).
- Fixed a bug where the podman system service command would fail to start when run as a systemd unit and autostarted at the same time as other Podman units (#29964).
- Fixed a bug where the podman events command would return incomplete output when using the file events backend and --until specified with a time in the past (#29579).
- Fixed a bug where the podman update command allowed setting a startup healthcheck on a container without a normal healthcheck.
- Fixed a bug where the remote Podman client's podman secret rm command would fail when given an ambiguous name that could match multiple possible secrets.
- Fixed a bug where the podman machine info command would report the default VM type and config/image directories, not those used by the current machine.
- Fixed a bug where the podman inspect command on containers did not include CheckpointLog after a failed container checkpoint (#25154).
API
- The Libpod API now features a new endpoint, POST /libpod/autoupdate, which automatically updates containers with the io.containers.autoupdate label.
- The Compat API now features a new endpoint, GET /distribution/{name}/json, which inspects an image on a registry (#17726).
- The Compat Create endpoint for Containers now supports a new field, HostConfig.Mounts.TmpfsOptions.Options, to set additional options for tmpfs mounts.
- The Compat Create endpoint for Containers now allows a full Seccomp profile to be passed in the HostConfig.SecurityOpt field (instead of a path to a file containing a profile), improving Docker compatibility (#27710).
- The Compat Push endpoint for Images now supports a new query parameter, platform, to push only a single platform-specific manifest instead of the entire list.
- The Compat Info endpoint now includes the status of active OCI runtimes.
- Fixed a bug where the Libpod Create endpoint for Containers required that the auto userns mode also specify full UID/GID mappings for the created container.
- Fixed a bug where the Compat Create endpoint for Containers would incorrectly adjust mode when setting tmpfs size.
- Fixed a bug where the Compat Create endpoint for Containers would incorrectly treat a healthcheck of {} as the user explicitly requesting no healthcheck, instead of using the image's healthcheck as Docker does (#29467).
- Fixed a bug where the Compat Inspect endpoint for Secrets allowed the showsecret query parameter, which should be restricted to Libpod API requests only (#29570).
- Fixed a bug where the Compat Inspect endpoint for Images included the Created field even when it was empty.
- Fixed a bug where the Compat List and Inspect endpoints for Networks did not include IPRange in the returned IPAMConfig (#28378).
- Fixed a bug where the Compat List endpoint for Containers would error when passed a filter including container statuses supported by Docker but not Podman (dead and restarting) (#28904).
- Fixed a bug where the Compat Stats endpoint for Containers could panic on containers with a memory reservation, but no memory limit, set (#29627).
- Fixed a bug where the Compat Stats endpoint for Containers incorrectly populated system_cpu_usage and percpu_stats when not streaming (#28761, #24730, #25709, #29912).
- Fixed a bug where the Compat Info endpoint reported an incorrect cgroup manager when running rootless with the cgroupfs cgroup manager (#27824).
- Fixed a bug where the Compat and Libpod Attach endpoints for Containers would, when doing a logs-only (stream=0 and logs=1) attach, incorrectly reinitialize the container, changing its exit code and status (#29664).
- Fixed a bug where the Compat and Libpod Update endpoints would incorrectly clear a container's restart policy when it was omitted from the request (#29790).
- Fixed a bug where the Compat and Libpod Start endpoints for Exec sessions would return an error when trying to start an exec session with no standard streams attached without specifying Detach=true.
- Fixed a bug where the Libpod Generate Kube endpoint returned the wrong content type (#29674).
- Numerous fixes to the API's Swagger documentation have been made to ensure it accurately documents the REST API.
Misc
- Fixed a number of low-level resource leaks in various parts of Podman.
- Waiting for gvproxy to start when starting a podman machine VM now uses a notification socket, instead of polling, improving reliability and startup time.
- Updated documentation for the --image-volume option to podman create and podman run to remove the deprecated bind option and add the new default, anonymous, which was not shown as a valid option. Using the deprecated bind option now prints a warning.
- Updated Buildah to v1.46.0
- Updated Common to v0.70.0
- Updated Image to v5.42.1
- Updated Storage to v1.64.2
All of your release notes in one feed
Join Releasebot and get updates from Podman and hundreds of other software products.
- Nov 9, 2026
- Date parsed from source:Nov 9, 2026
- First seen by Releasebot:Nov 11, 2026
4.99.0
Docker Desktop releases updates with fixes for proxy socket leaks, excess network and CPU use, shutdown and port display issues, and Windows and WSL reliability. Windows containers also gain BuildKit support with the containerd image store.
Download Docker Desktop
- Windows (checksum)
- Windows ARM Early Access (checksum)
- Mac with Apple chip (checksum)
- Mac with Intel chip (checksum)
- Debian - RPM - Arch (checksum)
Updates
- Docker Offload v0.7.36
- Docker Hardened Images (dhictl) v0.0.10
- Docker Agent v1.153.0
- Docker Scout CLI v1.28.0
- Docker MCP CLI v0.44.3
- Docker Compose v5.7.0
- Docker Engine v29.9.3
Bug fixes and enhancements
For all platforms
- Fixed a socket leak in the system proxy where plain HTTP requests from containers routed through an upstream proxy left one socket open per request until restart.
- Fixed constant network traffic and CPU usage caused by Docker Desktop computing the size of NFS- or SMB-backed volumes. Fixes docker/desktop-feedback#800.
- Fixed an issue where Docker Desktop could shut down ungracefully, causing resource leaks or a corrupted state by not allowing cleanup handlers to run.
- Fixed the Containers list cutting off the ports when clicking Show all ports, which now lists all of them in a popover. Fixes docker/desktop-feedback#794.
- Fixed connection resets on published ports under bursts of new connections with Docker VMM.
For Mac
- Fixed an issue where an update could fail with Unable to install because Docker Desktop killed the installer while quitting.
For Windows
- Fixed Windows updates stopping Docker Desktop abruptly, which could corrupt the engine databases.
- Fixed an error that could occur when attempting to run docker desktop commands from inside a WSL distro while using the WSL integration.
- Added BuildKit support for Windows containers when using the containerd image store.
- Fixed WSL 2 engine start failing on slow machines when the data disk took more than a fraction of a second to appear.
- Fixed per-user installs and updates on Windows failing with a "Virtual Machine Platform" error on machines where WSL 2 already works.
- Fixed Docker Desktop hanging after closing an error dialog with its Close button. Closing an error dialog that offers Continue now continues instead of quitting Docker Desktop.
- Fixed Windows containers failing to start at login with Starting windows containers: An error has occurred. when a container took longer than 30 seconds to stop.
- Fixed WSL 2 distributions flushing their systemd-resolved DNS cache every 30 seconds while Docker Desktop was running. Fixes docker/desktop-feedback#761.
- Fixed Windows installer launcher to report descriptive error reasons (e.g. Disk full) on update failure instead of a bare exit code.
- Nov 6, 2026
- Date parsed from source:Nov 6, 2026
- First seen by Releasebot:Nov 6, 2026
Kubernetes v1.38.0-beta.0 is live!
Kubernetes releases v1.38.0-beta.0 with new capabilities for seccomp profiles, workload scheduling, and resource management, alongside broad improvements and bug fixes across core components. The beta includes downloadable binaries and container images for multiple architectures.
Kubernetes Community,
Kubernetes v1.38.0-beta.0 has been built and pushed using Golang version 1.27.3.
The release notes have been updated in CHANGELOG-1.38.md, with a pointer to them on GitHub:
v1.38.0-beta.0
Downloads for v1.38.0-beta.0
Source Code
filename sha512 hash kubernetes.tar.gz 202c95a42c16c95fe5f3ae786a48dcf46ec2161266d05ab0be6155d47dc44335c8d127fcae87cbf9a6fd08da7a56d3d41577d668de24dfc1fafd0ad330d27e72 kubernetes-src.tar.gz ecefc6e401cccc425e6468260abb36b42a47bdeebd206ca32deadc3bfb4ff99cde82808b66ad8fac599aa24497401a866102e6bd03e114bd34602fc0dd6f8f21Client Binaries
filename sha512 hash kubernetes-client-darwin-amd64.tar.gz 17f5bc34230deff14e17476fa477b500bea976b74e29c202210033acba89444b22fc24ffaf14ac5e7047b8021c59758c8778b56776f14e2b8bc7ffd3b7c2e864 kubernetes-client-darwin-arm64.tar.gz 6a10aff402acc36c616d6837ba6a800375c708518e749584452cfed4d557e4721adf09d16e24866bfd43d99fedd62681653a90a5742e9245e11fddf3dd1f4d26 kubernetes-client-linux-386.tar.gz 0c0cdc3a6c0e0b8e144df182296355712540dff787fc1b47a36325fd06d1bb941325c95e5032478607449057a0fbdae869039a8c33d842ca0f15f8ed93e808d9 kubernetes-client-linux-amd64.tar.gz aa0dd45f5eea172227be303b85a50b9a781e7ef78fb88fc51157d78d86a01e5f6d5bca1473934e0d53e84065dfd518202e7bce1414d5a9e66afdede7571fca5b kubernetes-client-linux-arm.tar.gz 92dd237ee45350556834b6d424502cd654424a084a442d725a8f8beacf7a098d5c86a2341400b067746cf1de9c951a2855b6caf2f8c10b598ab68e43e3dffb75 kubernetes-client-linux-arm64.tar.gz 7448d88a3d1c350ee9fb5f16a6a1ac85f1e56e19a0ac77f8605b07edb72a1c8899a7d680e8bb134cb8cd4fc99fe0b634a767d09e4c7d31a5a09f0ed6ad057b61 kubernetes-client-linux-ppc64le.tar.gz f1d305064fc6fa6e90cb03130e76d3f3a94ab25b9f9694c97bec4a8537c9ec0fea156c500527c2a0c6933acfe6ddfd7976c75bac9e7cef4f07f0824648046d0c kubernetes-client-linux-s390x.tar.gz 750a0a082ab9c23f331e72b626ff8fefb946d0c0ef96576c000d4ea92924485cbad0e1a9c84db0cd3ab3669d8fe56d7d516dcbe1a00358757ac13beec6d45b53 kubernetes-client-windows-386.tar.gz e5f28ba323d2b0d9ffe8e7c64b05ce6cbb16d3ba22bc333ea9968e71a9a97ff59ee8de64c45268c2796676036615c8091eb409c4498a86f1a3d3c91c58388979 kubernetes-client-windows-amd64.tar.gz 162520ab0a4780bb8a0a06c97d8c8c5ef5a76573922a5387240f85b5fc4453c04815a837d5025fd867ed9ffaefc6e8375e1d12d7c215e1f4ffb56b4ea01296f2 kubernetes-client-windows-arm64.tar.gz df32c12c5ae55749cf153d73da1b9fac1483f4855e67214d02d90f8a29142ec475353158f733fcb575641f8dfecb0b5b81b20799393491256feca5c860a136e1Server Binaries
filename sha512 hash kubernetes-server-linux-amd64.tar.gz 3df721bc7030f7313470d4e62a57ef6fcb39bdec323c9ebef6c1da51ad8da52a45857dbca26fd5d4df263f3372ca4665647289396b7fec5036e25cc704a0b878 kubernetes-server-linux-arm64.tar.gz d05c870542d3cadeab66c90d0218bc11f50f2933309368a67eebb839b3ced718622fc8f3706eac4028c88caf32fddad4beb7b3935daca1abefb6042ee35c388f kubernetes-server-linux-ppc64le.tar.gz 03a17e1697fb0a2bede7bc58939c5d41190bf56680698364d55d601d86739f581491512152eb267d004e7dee590474b035a34ebb808c7de4ec8b80648442058b kubernetes-server-linux-s390x.tar.gz 7586b9a742d112e93eb14ba352c37c4a1765a298ab8a421ca8c912605bdfbe4192b4e27e392b481078079aa22242c8076dd1b60e112726ed4b12d8dd48fd14e8Node Binaries
filename sha512 hash kubernetes-node-linux-amd64.tar.gz 877cf5c01fd00b3dbfa83574256e716ebc4364f5c059423fe5ff384f397e99fcde3cbd37f2dbfd423aa9edc4225278ef5f8341e9bd1ddb3c320409073f7ecafa kubernetes-node-linux-arm64.tar.gz da12e56a81d92615d3397674aa4f1e12e26fedafe9897521a48ff1010204d6d88499a12fdd9aa1cb7302ed056f3bfdde45fd1c1f4ba3f267a6cc7c326db97073 kubernetes-node-linux-ppc64le.tar.gz 66879fbfe885607b2864926d63cea9dae5ec0ef3ca1201b53a7408ed5336fa6a86c57e9d853e0889490a5c38f551a36ad6cb3d579a70bf195089a9e632558744 kubernetes-node-linux-s390x.tar.gz 64d1c936578890f46b7165423141e98ca1b6e34814a24bc5d55f3847dc51a0476bfbb1f8de36a2926dbc6fe7a0c0188feffe4fb9cdf8c24ef044a2a476f32835 kubernetes-node-windows-amd64.tar.gz 8b27814c071b311b4b35fdfd79b1f48890d34da3b864766ee1a080d9c77b4037efebd2382857902cf3e8feb501eaa1ae282caa860f52014200b1ab21de891e19Container Images
All container images are available as manifest lists and support the described architectures. It is also possible to pull a specific architecture directly by adding the "-$ARCH" suffix to the container image name.
- registry.k8s.io/conformance:v1.38.0-beta.0 — amd64, arm64, ppc64le, s390x
- registry.k8s.io/kube-apiserver:v1.38.0-beta.0 — amd64, arm64, ppc64le, s390x
- registry.k8s.io/kube-controller-manager:v1.38.0-beta.0 — amd64, arm64, ppc64le, s390x
- registry.k8s.io/kube-proxy:v1.38.0-beta.0 — amd64, arm64, ppc64le, s390x
- registry.k8s.io/kube-scheduler:v1.38.0-beta.0 — amd64, arm64, ppc64le, s390x
- registry.k8s.io/kubectl:v1.38.0-beta.0 — amd64, arm64, ppc64le, s390x
Changelog since v1.38.0-alpha.3
Changes by Kind
API Change- Added (Alpha) support for OCI distribution of seccomp profiles. With the SecurityProfileOCI feature gate enabled, Kubernetes allows specifying seccomp profiles pulled from OCI registries, seccompProfile.type: OCI in a Pod spec, with a digest-pinned oci.ref and an optional oci.baseProfile.
- Added Beta support for users to define the desired file owner of atomically written volume files. This is behind the AtomicWriteVolumeUserFields feature gate (enabled by default).
- CompositePodGroup API is promoted to scheduling.k8s.io/v1beta1.
- CompositePodGroupTemplate docs are updated to reflect that no admission check is done on priorityclass during workload creation.
- DRA ResourceClaim and ResourceClaimTemplate capacity requests now reject negative quantities, invalid capacity names, and maps containing more than 32 entries. New ResourceClaim allocation results enforce equivalent validation for consumed capacity. Updates preserve unchanged capacity fields accepted under earlier validation. The scheduler also rejects negative consumed quantities and computed footprints when calculating DRA node-allocatable resource demand.
- DRA claim PerContainer overhead referenced only by non-restartable init containers now counts toward the pod's peak resource calculation instead of its entire duration. This is effective only when DRANodeAllocatableResources feature gate is enabled.
- DRA: graduate Device Binding Conditions (KEP #5007) to GA in v1.38.
- DRA: various improvements in the scheduling code make allocating devices faster. Also fixes semver comparisons during match/distinct attribute comparisons such that they now properly ignore build information. Pod scheduling fails consistently when unsupported value types are encountered for match/distinct attributes (can only occur in invalid cluster configurations). Previously they only caused a scheduling failure when actually doing a comparison.
- Kubeconfig clusters can set min-connection-pool-size to configure client-go's MinConnectionPoolSize. Exec credential plugins with provideClusterInfo: true receive the value in spec.cluster.
- Promote Recreate update strategy for StatefulSets to beta. Recreate strategy deletes all pods and waits for full termination before creating new pods according to podManagementPolicy.
- Promote WAS controller APIs building blocks to beta. The v1alpha3 Go types remain as aliases. WorkloadPodGroupSchedulingConstraints.Topology and WorkloadCompositePodGroupSchedulingConstraints.Topology now use WorkloadTopologyConstraint instead of v1alpha3.TopologyConstraint. External controllers must update the element type. The corresponding applyconfigurations moved to client-go/applyconfigurations/scheduling/v1.
- Removed the generally available feature gate RecoverVolumeExpansionFailure, which was locked and enabled since 1.34.
- Removed the locked GA feature gate SupplementalGroupsPolicy. Components no longer accept --feature-gates=SupplementalGroupsPolicy=...; remove it from any component configuration before upgrading.
- StatefulSet rolling updates with maxUnavailable no longer count unavailable pods below the partition against the update budget, which could previously stall Parallel rolls even when maxUnavailable was unset.
- The CustomResourceDefinition API types and generated clients are now published in the new module k8s.io/apiextensions-api, which does not depend on k8s.io/apiserver. The corresponding packages in k8s.io/apiextensions-apiserver remain as deprecated aliases; go fix -inline ./... migrates callers. The protobuf package of the CRD .proto files changes to k8s.io.apiextensions_api.pkg.apis.apiextensions.v1 (and v1beta1); the wire format is unchanged.
- The Job controller finds the Workload and PodGroup for a Job by name. A Job that sets spec.scheduling gets its own Workload and PodGroup regardless of its owner, including Jobs created by a CronJob. A Job with a controller owner that does not set spec.scheduling gets none. A Job with the scheduling.k8s.io/workload-name or scheduling.k8s.io/group-template-name annotation selects a template in an existing Workload. spec.scheduling is rejected when either annotation is set.
- The alpha PodGroupPreemptionPolicy feature gate has been removed and the field PreemptionPolicy is gated only by the GenericWorkload or CompositePodGroup feature flags.
- Updated cel-go to v0.33.0 (now imported as cel.dev/cel-go). The existing CEL cost model and optional-types behavior are kept. Two changes are visible: the estimated cost of comparing CEL types (type(a) == type(b)) is now accurate rather than effectively unbounded, and CEL compilation errors no longer include the (in container '') suffix. ACTION REQUIRED (Go consumers of Kubernetes libraries): k8s.io/apiserver, k8s.io/apiextensions-apiserver and k8s.io/dynamic-resource-allocation now depend on cel.dev/cel-go v0.33.0 instead of github.com/google/cel-go (the module was renamed upstream). Code that passes cel-go types (for example cel.EnvOption, cel.ProgramOption, *cel.Env, *cel.Type or ref.Val) to or from these libraries must update its imports to cel.dev/cel-go/.
- A new featureGate WatchFromStorageWithoutPrevKV has been added to enable etcd watches without prev-kv.
- Add pausable as an optional workqueue interface that controllers can use.
- Adds support for issuing ServiceAccount tokens signed by an ML-DSA key. Gated behind the ServiceAccountTokenMLDSA feature gate.
- Bump coredns to 1.15.0.
- Client-go: added MinConnectionPoolSize to rest.Config and transport.Config. When greater than 1, requests to the server are spread across at least that many independent connections, preferring the one with fewer requests in flight. Controlled by the new beta ClientsAllowConnectionPool client-go feature gate, enabled by default (disable with KUBE_FEATURE_ClientsAllowConnectionPool=false).
- ClusterTrustBundle API objects now increment metadata.generation when their spec is modified. PodCertificateRequest objects pin to a metadata.generation of 1 on creation.
- DRAConsumableCapacity and DRAFractionalCapacityRange are now GA.
- Disallow setting "all" disruption mode on newly created PodGroups, CompositePodGroups, and Workload templates when scheduling policy is other than "gang" (existing objects remain updatable).
- Implement ConsistentGetFromCache in Alpha to fetch objects from cache instead from storage.
- It is now possible to choose to mount kube-apiserver serving trust to pods by choosing a cluster-wide ClusterTrustBundle as the trust source, rather than having it sourced from ConfigMaps that are distributed in all namespaces of the cluster. This functionality is feature-gated by the KubeAPIServerWorkloadsTrust feature gate.
- Kube-proxy's iptables and ipvs modes now have built-in iptables-legacy vs iptables-nft detection, so if you are building your own kube-proxy image, you no longer need to include the iptables-wrapper binary.
- Kube-scheduler: Added a QueueingHint that immediately re-queues a nominated pod when an update to its nominated node's Allocatable means the pod can no longer fit on that node, so it can preempt on another node without waiting for the original victims to terminate.
- Kube-scheduler: when the GenericWorkload feature gate is enabled, the scheduler logs an error at startup for each enabled PostFilter plugin that is not enabled at PodGroupPostFilter. Such plugins are not run for pods scheduled as part of a PodGroup.
- Kubeadm: kubeadm upgrade diff and the dry run of kubeadm upgrade apply and kubeadm upgrade node now include the etcd static Pod manifest when etcd is managed by kubeadm.
- Kubeadm: the dns.imageTag override in ClusterConfiguration now propagates consistently to Corefile migration, upgrade preflight checks, and kubeadm upgrade plan output, in addition to the deployed manifest.
- Kubelet: as part of using newer APis for contextual logging, the work queue of the certificate manager is now named "podcertificate_projection" and shows up with that label in the work queue metrics.
- Promoted the DRAPartitionableDevices feature gate to GA and locked it to true.
- WatchList will no longer send a periodic bookmark just 1s after sending initial bookmark.
- With the alpha ManagedFieldsOptOutClient feature gate enabled, kube-scheduler's informers no longer receive metadata.managedFields.
- CRI container metrics can now carry fractional values, preventing sub-second precision loss in CPU and PSI metrics sourced from the CRI.
- Cloud-controller-manager now honors the NativeHistograms feature gate. When the gate is enabled, its histogram metrics are also exposed in native histogram format.
- DeviceTaintEvictionController no longer counts a pod that is already terminating in device_taint_eviction_controller_pod_deletions_total, device_taint_eviction_controller_pod_deletion_duration_seconds or the DeviceTaintRule evicted pod count.
- Fix kubectl kuberc set --section aliases to validate that alias names contain only alphabetical characters before writing to the kuberc file.
- Fix error reporting for invalid flags in kuberc aliases to display the alias name instead of the binary name.
- Fixed a bug in fake client-go's object tracker where deletions that occurred between an initial List and subsequent Watch were lost.
- Fixed a bug in kube-scheduler where NodeResourcesFit scoring ignored the PodLevelResources, InPlacePodVerticalScaling, and InPlacePodLevelResourcesVerticalScaling feature gates when computing pod resource requests.
- Fixed a bug in kube-scheduler where a PodGroup's or CompositePodGroup's InitiallyScheduled=True condition could be overwritten with False by a scheduling cycle that ran before the scheduler observed its own status update.
- Fixed a bug where ResourceQuota admission could admit a request that exceeds quota when, in the same admission batch, a status update on another quota in the namespace hit a conflict and triggered a retry.
- Fixed a bug where a ValidatingAdmissionPolicy or MutatingAdmissionPolicy with a paramKind referencing a built-in type (such as v1/ConfigMap) permanently stopped resolving params once all of its bindings were deleted. Affected policies either denied every matched request (with parameterNotFoundAction: Deny) or silently evaluated against a stale param, until the apiserver was restarted.
- Fixed a bug where duplicate (status, reason) volume health conditions reported by a CSI driver caused Kubelet pod status patching to fail with a 422 validation error, blocking pod deletion.
- Fixed a bug where kubelet was killing containers one at a time when restarting them without deleting the pod.
- Fixed a bug where pods with required pod affinity or anti-affinity terms using namespaceSelector were not requeued on assigned-pod events that could make them schedulable, which delayed scheduling until the periodic unschedulable-pods flush.
- Fixed a client-go panic when a connection-rotation dialer is constructed without a custom dial function. It now uses the documented default network dialer.
- Fixed a kube-apiserver goroutine and memory leak: a watch-list (sendInitialEvents=true) watcher stayed blocked forever when the client disconnected while the watch cache closed the watcher as too slow.
- Fixed a potential data race condition in the preemption workflow within the scheduling cycle.
- Fixed a race condition in kube-scheduler async preemption where a preemptor pod could remain stuck in the unschedulable queue if its last victim pod was already deleted before the preemption API call executed. Changed the boolean return value of preemption.Executor.PreemptPod in pkg/scheduler/framework/preemption to return true when the API server deletes a bound victim (and will emit a pod deletion event), and false when the victim was preempted only in scheduler memory or was already deleted.
- Fixed a regression in v1.37 where kube-scheduler could treat the devices of an allocated ResourceClaim as free after PreBind failed, which could lead to allocating the same device twice.
- Fixed the scheduler_framework_extension_point_duration_seconds metric for the PreEnqueue extension point, which always reported status="Success" even when a PreEnqueue plugin gated the pod.
- Fixed the audit truncate backend adding the audit.k8s.io/truncated annotation to events sent to other audit backends, which then reported complete events as truncated.
- Fixes an issue where kubelet fails to register CSINode objects when a node is quickly recreated with the same name, which previously prevented CSI volumes from attaching to the new node.
- Kube-apiserver: fixed a race during graceful shutdown that let active watch requests close without the rate limiting configured by --shutdown-watch-termination-grace-period.
- Kube-proxy no longer misses the initial Node zone when an already-running informer replays its cached Node, ensuring topology-aware routing uses the configured zone without requiring a restart.
- Kube-scheduler: the per-node resource totals no longer wrap negative when the requests of the pods assigned to a node exceed int64, which could make the node look like it had spare capacity.
- Kubeadm: kubeadm upgrade plan now returns an error instead of panicking when the latest kube-apiserver version cannot be determined.
- Kubeadm: fixed a bug where the error about missing CA files is never returned.
- Kubeadm: fixed a leak of one named pipe connection per responding CRI socket on Windows when detecting the container runtime socket.
- Kubeadm: when the version to upgrade to is below the minimum supported control plane version, kubeadm upgrade now shows the minimum supported version in the error instead of the current cluster version.
- Kubectl cluster-info dump now closes the files it writes with --output-directory, which avoids "too many open files" errors on large clusters.
- Kubectl no longer treats arguments that contain -v= (for example the label tier-v=8 or the selector -l app-v=9) as the log verbosity flag. Previously these silently raised the log level for the whole command.
- Kubectl: fixed --kuberc= truncating paths that contain =.
- Kubectl: fixed a stray line break in the object name in error messages from kubectl set subcommands when used with --local on resources from a named API group.
- Kubelet now clears name-keyed ClusterTrustBundle cache entries when a ClusterTrustBundle that has a spec.signerName changes. Before this, a pod that projected such a bundle by name could get stale trust anchors for up to 5 minutes after the object was updated.
- Promoted the SchedulerPreQueueingHints feature gate to beta, enabled by default. It reduces kube-scheduler requeue work for DRA ResourceClaim events.
- Updated github.com/go-jose/go-jose/v4 to v4.1.7 to address CVE-2026-116587 and five other advisories. JWK parsing now rejects RSA keys larger than 4096 bits, so an external OIDC issuer that uses a larger key will stop authenticating.
- Workload validation now rejects Workloads whose PodGroupTemplates and CompositePodGroupTemplates have different preemptionPolicy values, including a mix of set and unset. Existing Workloads can still be updated.
- scheduler_batch_cache_flushed_total metric now reports a discarded batch state once rather than once per following pod, and is limited to states found unusable when a hint is requested. Its empty_list and pod_not_batchable reasons moved to the new alpha metric scheduler_store_schedule_results_total, which records the outcome of each attempt to store scheduling results for opportunistic batching. The pod_failed reason, which could never be reported, was removed.
- Fixed redundant conversions and allocations when evaluating nested CEL Object{} expressions in MutatingAdmissionPolicy.
- Significant performance improvements in field selection within CEL expressions.
- The GA WinDSR and WinOverlay feature gates have been removed. Windows DSR continues to be controlled by kube-proxy's winkernel.enableDSR or --enable-dsr setting, and Windows overlay networking no longer requires a feature gate.
- The NodeSwap feature gate, which graduated to GA and was locked to default in 1.34, has been removed.
- The kubelet now applies declarative validation to static pod manifests. Previously such static pods ran while the API server rejected their mirror pods.
- NewSnapshot in k8s.io/kubernetes/pkg/scheduler/backend/cache now lists nodes in a deterministic order: the order of its nodes argument, followed by node names that only appear in pods, in pod order. Previously the order could change between calls with the same input.
- kubectl no longer downloads the deprecated /openapi/v2 schema for client-side validation. With --validate=strict, resources whose API does not support server-side field validation are no longer validated against a schema.
Dependencies
Added- cel.dev/cel-go: v0.33.2
- github.com/pandatix/go-abnf: v0.5.5
- sigs.k8s.io/iptables-wrappers: v1.0.0
- github.com/coredns/corefile-migration: v1.0.35 → v1.0.36
- github.com/go-jose/go-jose/v4: v4.1.5 → v4.1.9
- github.com/google/cel-go: v0.29.2 → v0.25.0
- github.com/prometheus/common: v0.72.0 → v0.73.1
- golang.org/x/net: v0.61.0 → v0.62.0
Nothing has changed.
Contributors, the CHANGELOG-1.38.md has been bootstrapped with v1.38.0-beta.0 release notes and you may edit now as needed.
Published by your Kubernetes Release Managers.
Original source - Nov 5, 2026
- Date parsed from source:Nov 5, 2026
- First seen by Releasebot:Nov 6, 2026
[Security Advisory] CVE-2026-116472: ingress-nginx mirror-target self-DOS
Kubernetes warns of an ingress-nginx vulnerability that could disrupt service or redirect traffic. SUSE has issued a fix in its ingress-nginx fork, while Kubernetes will not provide a fix because project maintenance has ended.
Hello Kubernetes Community,
A security issue was discovered in ingress-nginx where a user with permission to create an Ingress may be able to cause denial of service of the ingress-nginx data plane, or possibly redirect traffic from other Ingresses. Kubernetes clusters are only affected if they are using ingress-nginx.
Kubernetes will not be issuing a fix for this CVE, because ingress-nginx maintenance ended in March 2026.
SUSE has issued a fix for this CVE in version 1.15.2-prime1 of their fork of ingress-nginx.
This issue has been rated 2.7 (LOW), and assigned CVE-2026-116472
Am I vulnerable?
This issue affects ingress-nginx. If you do not have ingress-nginx installed on your cluster, you are not affected. You can check this by running
kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx.How do I mitigate this vulnerability?
Prior to upgrading, this vulnerability can be mitigated by using an admission controller to reject Ingresses that specify the mirror-target annotation, or by setting the annotations-risk-level configMap parameter to "Medium" or "Low".
How to upgrade?
To upgrade, consult the documentation provided by your vendor.
Note that the Kubernetes project will not be issuing a fix for this CVE.
Detection
Localhost addresses in the mirror-target annotation of an Ingress resource may indicate an attempt to exploit this vulnerability.
If you find evidence that this vulnerability has been exploited, please contact [email protected]
See the GitHub issue for more details:
https://github.com/kubernetes/kubernetes/issues/143852
Acknowledgements
This vulnerability was reported by Victor Pereira.
Original source - Nov 4, 2026
- Date parsed from source:Nov 4, 2026
- First seen by Releasebot:Nov 5, 2026
v1.24.0
Watchtower releases an update focused on safer configuration and more reliable container updates, with stricter startup validation, improved notification handling, security fixes, and support for check hook timeout labels.
Note
Watchtower now checks notification URLs more strictly at startup. Shoutrrr v0.23.0 rejects some URLs that earlier versions accepted, such as a Discord webhook whose ID is not a number. See Notifications.
Features
- feat(container): support check hook timeout labels by @nicholas-fedor in #3244
Fixes
- fix(registry): send the registry token only to same-origin manifest redirects by @nicholas-fedor in #3032
- fix(registry): reject bearer challenges redirected from https to http by @nicholas-fedor in #3044
- fix(release): merge concurrent release tag lookups for the same image by @nicholas-fedor in #3049
- fix(container): skip the health wait for disabled health checks by @nicholas-fedor in #3053
- fix(compose): reject Compose files that compose-go selects outside the project by @nicholas-fedor in #3063
- fix(filters): keep every value given for a repeated label key by @nicholas-fedor in #3067
- fix(config): accept only plain numbers in disk-space sizes and percentages by @nicholas-fedor in #3069
- fix(metrics): reuse collectors the registry already holds by @nicholas-fedor in #3073
- fix(settings): resolve settings edge cases in config loading by @nicholas-fedor in #3079
- fix(settings): accept repeated all and whitespace in http-api-endpoints by @nicholas-fedor in #3085
- fix(container): consolidate MAC address checks on container recreation by @nicholas-fedor in #3092
- fix(container): bound hook output reads by their timeout and close redaction gaps by @nicholas-fedor in #3106
- fix(container): redact camelCase credential query parameters by @nicholas-fedor in #3112
- fix(container): stop nesting legacy link names on recreation by @nicholas-fedor in #3114
- fix(container): reject unsafe characters in changelog repository paths by @nicholas-fedor in #3122
- fix(container): keep build error causes after redaction by @nicholas-fedor in #3128
- fix(container): detect the runtime for clients without a filesystem by @nicholas-fedor in #3138
- fix(container): allow two dots inside copy-file names by @nicholas-fedor in #3146
- fix(container): report lifecycle hook failures as what went wrong by @nicholas-fedor in #3154
- fix(update): skip the health wait after an ephemeral self-update handoff by @nicholas-fedor in #3160
- fix(update): keep orchestrator recovery alive past the handoff deadline by @nicholas-fedor in #3165
- fix: keep self-updates enabled when the Docker daemon starts slowly by @nicholas-fedor in #3167
- fix: exit instead of running unscoped when the scope label cannot be read by @nicholas-fedor in #3169
- fix: report when Watchtower cannot disable its restart policy on exit by @nicholas-fedor in #3173
- fix(update): give detached Docker calls time beyond the stop timeout by @nicholas-fedor in #3236
- fix(update): bound failed-replacement cleanup by the container stop timeout by @nicholas-fedor in #3238
- fix(rebuild): bound git rebuilds by their own limit, not the git timeout by @nicholas-fedor in #3240
- fix(container): reject negative lifecycle hook timeouts by @nicholas-fedor in #3242
- fix(hooks): read lifecycle hook labels only for hooks that run by @nicholas-fedor in #3246
- fix(notifications): reject malformed Discord webhook URLs by @nicholas-fedor in #3248
- fix(notifications): log empty notification skips at debug only by @nicholas-fedor in #3250
- fix(api): report the last scan's time as the status timestamp by @nicholas-fedor in #3266
- fix(metrics): count skipped scheduled scans again by @nicholas-fedor in #3278
- fix: recover and notify update panics by @nicholas-fedor in #3282
- fix(update): list update errors in report-mode notifications by @nicholas-fedor in #3284
- fix(update): notify a disk-space abort once by @nicholas-fedor in #3286
- fix(sorter): notify an identifier collision once by @nicholas-fedor in #3288
- fix(update): report the containers a canceled scan never checked as skipped by @nicholas-fedor in #3290
- fix(notifications): show the error cause in the default template's fallback by @nicholas-fedor in #3292
- fix(update): end a scan only when the scan itself is canceled by @nicholas-fedor in #3294
- fix(update): warn once when a container's update check fails by @nicholas-fedor in #3296
- fix(update): warn once when a stale container's configuration cannot be recreated by @nicholas-fedor in #3302
- fix(update): warn once for an invalid Git label by @nicholas-fedor in #3304
- fix(container): warn once for an invalid container label by @nicholas-fedor in #3312
- fix(settings): reject negative duration settings at startup by @nicholas-fedor in #3324
- fix(notify-upgrade): exit with code 1 when the upgrade fails by @nicholas-fedor in #3330
- fix(cmd): disable restarts before exiting on startup errors by @nicholas-fedor in #3337
- fix(settings): reject invalid integer settings at startup by @nicholas-fedor in #3345
- fix(settings): check every numeric setting's range at startup by @nicholas-fedor in #3347
- fix(settings): reject an HTTP API rate limit of zero at startup by @nicholas-fedor in #3351
- fix(settings): reject lifecycle UIDs and GIDs above 2147483647 by @nicholas-fedor in #3353
- fix(notifications): keep tokens out of notification send-failure logs by @nicholas-fedor in #3361
- fix(git): pick equal release tags by name by @nicholas-fedor in #3392
- fix(git): stop repeating the git-host error prefix by @nicholas-fedor in #3399
- fix(update): stop repeating container client error prefixes by @nicholas-fedor in #3406
- fix(notify): log shoutrrr records at their own level by @nicholas-fedor in #3415
- fix(notify): stop panicking and waiting out delays after close by @nicholas-fedor in #3417
- fix(notify): check upgraded notification urls with shoutrrr by @nicholas-fedor in #3419
- fix(notify): return errors for missing legacy notifier settings by @nicholas-fedor in #3423
- fix(notify): exit through startup's exit path when notifications fail to initialize by @nicholas-fedor in #3425
- fix(notify): report rejected notification urls the same way at startup by @nicholas-fedor in #3427
Dependency Updates
- chore(deps): update module github.com/prometheus/procfs to v0.23.0 by @renovate[bot] in #3089
- chore(deps): update module github.com/moby/sys/capability to v0.5.0 by @renovate[bot] in #3120
- chore(deps): update module github.com/molecule-man/go-brrr to v1.3.1 by @renovate[bot] in #3132
- chore(deps): update module github.com/valyala/fasthttp to v1.77.0 by @renovate[bot] in #3171
- chore(deps): update module github.com/gofiber/utils/v2 to v2.6.3 by @renovate[bot] in #3177
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest to 2ffab32 by @renovate[bot] in #3182
- chore(deps): update google.golang.org/genproto/googleapis/api digest to 2ffab32 by @renovate[bot] in #3181
- chore(deps): update module github.com/moby/sys/user to v0.5.0 by @renovate[bot] in #3186
- chore(deps): update module google.golang.org/grpc to v1.85.0 by @renovate[bot] in #3194
- chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.33.0 by @renovate[bot] in #3199
- chore(deps): update module golang.org/x/net to v0.62.0 by @renovate[bot] in #3210
- chore(deps): update module github.com/hashicorp/go-uuid to v1.0.4 by @renovate[bot] in #3224
- chore(deps): update module github.com/vektra/mockery/v3 to v3.9.0 by @renovate[bot] in #3232
- chore(deps): update module github.com/gofiber/contrib/v3/swaggo to v1.0.15 by @renovate[bot] in #3257
- chore(deps): update module github.com/gofiber/contrib/v3/zerolog to v1.1.9 by @renovate[bot] in #3258
- chore(deps): update module github.com/prometheus/common to v0.73.1 by @renovate[bot] in #3298
- chore(deps): update module github.com/pandatix/go-abnf to v0.5.5 by @renovate[bot] in #3332
- chore(deps): update module go.yaml.in/yaml/v3 to v3.0.6 by @renovate[bot] in #3338
- chore(deps): update module github.com/cenkalti/backoff/v7 to v7.0.3 by @renovate[bot] in #3348
- chore(deps): update module go.yaml.in/yaml/v2 to v2.4.5 by @renovate[bot] in #3375
- chore(deps): update module go.yaml.in/yaml/v4 to v4.0.0-rc.9 by @renovate[bot] in #3379
- chore(deps): update module github.com/docker/compose/v5 to v5.7.0 by @renovate[bot] in #3380
- chore(deps): update module connectrpc.com/connect to v1.21.1 by @renovate[bot] in #3384
- chore(deps): update github.com/tonistiigi/fsutil digest to e075fd9 by @renovate[bot] in #3396
- chore(deps): update module github.com/gofiber/schema to v1.9.3 by @renovate[bot] in #3401
- chore(deps): update module github.com/docker/cli to v29.9.3+incompatible by @renovate[bot] in #3408
- chore(deps): update module github.com/moby/buildkit to v0.34.2 by @renovate[bot] in #3409
- chore(deps): update module github.com/nicholas-fedor/shoutrrr to v0.23.0 by @renovate[bot] in #3411
Full Changelog: v1.23.2...v1.24.0
Original source - Nov 3, 2026
- Date parsed from source:Nov 3, 2026
- First seen by Releasebot:Nov 4, 2026
4.98.0
Docker Desktop releases security fixes and reliability improvements, including expanded Docker VMM support for Docker commands in WSL 2, clearer Windows recovery guidance, and fixes for startup, networking, file sharing, and disk image moves.
Download Docker Desktop
- Windows (checksum)
- Windows ARM Early Access (checksum)
- Mac with Apple chip (checksum)
- Mac with Intel chip (checksum)
- Debian - RPM - Arch (checksum)
Updates
- Docker Offload v0.7.35
- The following Kubernetes images have been updated to bring in latest security fixes. New tags listed below:
- docker/desktop-storage-provisioner:v5.0
- docker/desktop-vpnkit-controller:v5.0
- docker/desktop-containerd-registry-mirror:v0.0.5
- docker/desktop-cloud-provider-kind:v0.8.0
Bug fixes and enhancements
For all platforms
- Fixed Docker Hub model pulls failing on proxy-only networks where local DNS could not resolve the authentication endpoint.
- Fixed Docker Desktop staying on the Starting page after Docker Engine had started. Fixes docker/desktop-feedback#685
- Fixed diagnose gather on slow or stopped VMs by capping the VM start wait to 120 seconds.
- Improved responsiveness of error dialogs.
- Fixed moving the disk image to another volume failing when the copy took more than 5 minutes.
- Fixed uncaught Request aborted errors each time the engine stopped.
For Mac
- Removed the com.docker.vmnetd privileged helper. A helper installed by a previous version is uninstalled automatically, and the install vmnetd option of the command line installer is gone.
For Windows
- Added Docker VMM to the Clean up data dialog.
- Fixed WSL error code parsing so that users running newer WSL versions (3.0.x) receive accurate, actionable recovery instructions instead of a generic error message.
- Fixed the Docker VMM backend option on Windows ARM64 to appear correctly disabled with an explanation in settings, and automatically fall back to WSL 2 during install or upgrade.
- Fixed an intermittent Being used by another process error on the desktop-linux Docker context file when the engine started.
- Fixed file sharing treating a directory as shared, or as allowed by Settings Management, when its name only started with that of a shared or allowed directory (e.g. C:\foobar for C:\foo). Allowed file share entries now match whole directory names only.
- Fixed an issue where processes started in the Docker Desktop terminal could be left running after closing the terminal.
- Added support for running docker and docker compose from WSL 2 distros when Docker VMM is the engine, including bind mounts of files on Windows drives such as /mnt/c.
- Fixed Docker VMM re-enabling the WSL feature on update and showing a Press any key to install WSL prompt when WSL is uninstalled. Fixes docker/desktop-feedback#775.
Security
- Fixed CVE-2026-98432, a use-after-free in the Linux kernel's IPv4 TCP handling.
- Fixed CVE-2026-112917 where a container on the WSL 2 backend could bypass the AF_VSOCK restriction. Requires WSL 3.0.3 or later.
- Oct 29, 2026
- Date parsed from source:Oct 29, 2026
- First seen by Releasebot:Sep 24, 2026
- Modified by Releasebot:Oct 30, 2026
v2.13.11
Rancher updates its Dashboard reference to v2.13.11.
Update Dashboard refs to v2.13.11 (#58441)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Original source - Oct 29, 2026
- Date parsed from source:Oct 29, 2026
- First seen by Releasebot:Aug 28, 2026
- Modified by Releasebot:Oct 30, 2026
v2.15.3
Rancher releases v2.15.3, a maintenance update that fixes critical security vulnerabilities in Rancher and Fleet, improves proxy and role authorization checks, and resolves issues affecting settings and cluster provisioning.
Release v2.15.3
Important
If you are using Active Directory Federation Service (AD FS), upgrading to Rancher v2.10.1 or later may cause issues with authentication, requiring manual intervention. These issues are due to the AD FS Relying Party Trust not being able to pick up a signature verification certificate from the metadata. For more information, see #48655. These issues can be corrected by either of two methods:
- Updating the Relying Party Trust information from federation metadata (Relying Party Trust → Update from Federation Metadata…).
- Directly adding the certificate (Relying Party Trust → Properties → Signature tab → Add → Select the certificate).
Rancher v2.15.3 is the latest patch release of Rancher. This is a Community version release that introduces maintenance updates and bug fixes.
For more information on new features in the general minor release, see the v2.15.0 release notes.
Security Fixes for Vulnerabilities
This release addresses the following security issues:
Rancher
Fixed a security vulnerability in the Rancher meta proxy endpoint where the destination allowlist was evaluated in a location that could not prevent a request from being forwarded. An authenticated user could cause the Rancher server to send requests to internal services that the allowlist is intended to block and receive the responses. The allowlist is now enforced in the request handler, which rejects disallowed destinations before any connection is made. For more information, see CVE-2026-88809.
Fixed a security vulnerability in Rancher's RBAC validation where the inheritedNamespacedRules field of a GlobalRole was not checked for privilege escalation. A user with delegated permissions to manage global roles and global role bindings could grant permissions in downstream clusters that exceeded their own. The GlobalRole and GlobalRoleBinding admission webhooks now validate this field in the same way as the other permission-carrying fields. For more information, refer to CVE-2026-88810.
Fixed a security vulnerability in the Rancher Manager meta proxy where the caller's own Rancher credentials were not consistently removed from requests forwarded to third-party cloud provider hosts. A signed-in user's session credential could be sent to a cloud provider during ordinary use of provisioning views, and an API client's Rancher token could be sent when it omitted the proxy's credential selection headers. The proxy now strips the caller's credentials on every request path. For more information, refer to CVE-2026-88811.
Fixed a security vulnerability in Rancher where the authorization check that protects the local cluster shell was not applied to every API route that could reach it. Any authenticated user, including one with no permissions on the local cluster, could obtain an unprivileged shell pod on the management cluster, breaking the expected isolation of the management plane. The authorization check is now enforced consistently for all request forms. For more information, see CVE-2026-104623.
Fleet
Fixed a privilege escalation vulnerability in Fleet's agent management controller, where a Fleet cluster object created by an ordinary user could reference administrative credentials for the Rancher management (local) cluster. This allowed an authenticated user holding only the default user global role, with no permissions on the local cluster, to gain cluster-admin on the Rancher management cluster and thereby on all managed clusters. Fleet now only accepts a kubeconfig secret from another namespace when the secret is labeled for use by the referencing namespace, and only deploys agents onto the management cluster for its own system clusters. For more information, refer to CVE-2026-94290.
Fixed a security vulnerability in Fleet where the cluster identity claimed during cluster registration was not bound to the registration token used for the request. A holder of a valid workspace registration token who knew another cluster's client identifier could obtain credentials for that cluster's Fleet management namespace and disrupt its legitimate agent. Fleet now records the registration token a cluster is registered with and rejects registration requests that claim the same cluster identity with a different token. For more information, refer to CVE-2026-104615.
For additional details, see the Security Advisories and CVEs page in Rancher's documentation or in Rancher's GitHub repository.
Rancher general
Major bug fixes
Fixed an issue where Rancher settings configured using environment variables retained stale values and the source: env attribute after the environment variable was removed. When an environment variable is removed, Rancher now clears the stored environment source and value on startup. The setting then reverts to its default value. See See #58075.
Cluster provisioning
Major bug fixes
Fixed an issue where imported clusters could become unavailable after upgrading Rancher if the cluster agent was redeployed before its registration token was migrated, leaving the agent with an empty token. See #58028.
Fixed an issue where provisioned clusters with S3 etcd snapshots could remain stuck during deletion. See #57506.
Changes Since v2.15.2
See the full list of changes.
Install/Upgrade Notes
If you’re installing Rancher for the first time, your environment must fulfill the installation requirements.
Important
Rancher now requires the cluster it runs on to have the Kubernetes API Aggregation Layer enabled. This is because Rancher extends Kubernetes with additional APIs by registering its own extension API server. Please note that all versions of Kubernetes supported in this Rancher versions K8s distributions (RKE2/K3s) will have the aggregation layer configured and enabled by default.
Refer to the Extension API Server documentation and #50400 for more information.
Rancher Kubernetes Engine (RKE/RKE1) has reached end of life as of July 31, 2025. Rancher versions 2.12.0 and later no longer support provisioning or managing downstream RKE1 clusters. We recommend replatforming RKE1 clusters to RKE2 to ensure continued support and security updates. Learn more about the transition here.
Rancher now has a pre-upgrade validation check for RKE1 resources which fails and lists the RKE1 resources if present. Refer to #50286 for more information.
It is crucial that you review the available disk space on your nodes and plan accordingly before upgrading to Rancher v2.12.0 and later to avoid potential disk pressure and pod eviction issues.
For additional information, refer to the UI Server Side Pagination - Disk Space documentation.
Rancher now has an enablement option called AUDIT_LOG_ENABLED for API Audit Logs for a Rancher installation.
In Rancher versions 2.11.x and earlier, only the AUDIT_LEVEL could be set and the default log level (0) would disable the audit log. In Rancher versions 2.12.x and later, the default log level (0) now only contains the log request and response metadata, and can be set when configuring AUDIT_LOG_ENABLED. If installing or upgrading via Helm you can enable the API Audit Logs and specify the log level by applying the following setting to your Helm command: --set auditLog.enabled=true --set auditLog.level=0. See the Enabling the API Audit Log to Record System Events documentation and #48941.
Changes in Image Artifacts
Image artifact digests are renamed in Rancher v2.12.0, v2.11.4 and v2.10.8. Up until this change, separate image digests files for each operating system and architecture have been maintained for compatibility reasons. With this change, only one file for each operating system is to be provided:
- The rancher-images-digests-linux-amd64.txt and rancher-images-digests-linux-arm64.txt files are to be renamed to rancher-images-digests-linux.txt.
- The rancher-images-digests-windows-ltsc2019.txt and rancher-images-digests-windows-ltsc2022.txt files are to be renamed to rancher-images-digests-windows.txt.
Upgrade Requirements
- Creating backups: Create a backup before you upgrade Rancher. To roll back Rancher after an upgrade, you must first back up and restore Rancher to the previous Rancher version. Because Rancher will be restored to the same state as when the backup was created, any changes post-upgrade will not be included after the restore.
- Helm version requirements:
- To manage Rancher 2.12.x and later, you must upgrade your Helm client to version 3.18 or newer.
- This change is required to reflect the addition of Kubernetes 1.33 support with this release.
- Currently, the official Helm Version Support Policy dictates that only Helm 3.18 supports the proper Kubernetes version range for Rancher 2.12.
- CNI requirements:
- For Kubernetes v1.19 and later, disable firewalld as it’s incompatible with various CNI plugins. See #28840.
- When upgrading or installing a Linux distribution that uses nf_tables as the backend packet filter, such as SLES 15, RHEL 8, Ubuntu 20.10, Debian 10, or later, upgrade to RKE v1.19.2 or later to get Flannel v0.13.0. Flannel v0.13.0 supports nf_tables. See Flannel #1317.
- Requirements for air-gapped environments:
- When using a proxy in front of an air-gapped Rancher instance, you must pass additional parameters to NO_PROXY. See the documentation and issue #2725.
- When installing Rancher with Docker in an air-gapped environment, you must supply a custom registries.yaml file to the docker run command, as shown in the K3s documentation. If the registry has certificates, then you’ll also need to supply those. See #28969.
Versions
Images
rancher/rancher:v2.15.3
Tools
CLI - v2.15.3
Kubernetes Versions for RKE2/K3s
- v1.36.5 (Default)
- v1.35.9
- v1.34.12
Rancher Helm Chart Versions
In Rancher v2.6.0 and later, in the Apps & Marketplace UI, many Rancher Helm charts are named with a major version that starts with 100. This avoids simultaneous upstream changes and Rancher changes from causing conflicting version increments. This also complies with semantic versioning (SemVer), which is a requirement for Helm. You can see the upstream version number of a chart in the build metadata, for example: 100.0.0+up2.1.0. See #32294.
Previous Rancher Behavior Changes
Previous Rancher Behavior Changes - Rancher General
Rancher v2.15.0:
- Rancher v2.15 removes support for Kubernetes v1.33. See #55306.
Previous Rancher Behavior Changes Changes - Rancher App (Global UI)
Rancher v2.15.0:
- The option to disable the feature flag ui-sql-cache / Vai / Server-Side Pagination (SSP) in the Rancher UI has been removed in preparation for Rancher v2.16, where the feature will always be enabled. See #16822.
- Removal: Support for Ember-based UI plugins for cluster and node drivers (deprecated since Rancher v2.11.0) is removed in Rancher v2.15.0. Migrate your plugins to the UI Extensions Framework. For details, see #14005.
Previous Rancher Behavior Changes - K3s and RKE2 Provision
Rancher v2.15.0:
- By default, the Standard User and Create Clusters global permissions now allow creating and then updating CAPI infrastructure objects in the fleet-default namespace. Note that manually created infrastructure provider identity objects, such as AWSClusterStaticIdentity or VSphereClusterIdentity, that target the fleet-default namespace can be used through CAPI infrastructure objects such as AWSCluster or VsphereCluster. See #53777.
- When using native CAPI infrastructure providers with v2prov, Rancher will now generate the bootstrap cloud-config in the Jinja format. User-data for regular node drivers with v2prov is unaffected. See #53777.
Previous Rancher Behavior Changes - Continuous Delivery (Fleet)
Rancher v2.15.0:
- Deprecation: Fleet will be removing support for GitRepoRestriction in a future release, making the use of the Policy resource for configuring multi-tenant environments the only option. See #55652.
- Deprecation: Fleet support for unauthenticated webhook calls will be removed in a future release, making the setup of a webhook secret the only option. See #55633.
Long-standing Known Issues
Long-standing Known Issues - Cluster Provisioning
Rancher v2.15.1:
Creating or editing v2prov clusters with native CAPI infrastructure providers from the UI can under some failure conditions leave unused infrastructure resources in the management cluster that must be cleaned up manually. See #55705.
Rancher v2.15.0:
Imported clusters cannot reconnect to Rancher if their registration token is rotated while they are disconnected and the grace period ends before they reconnect. The cluster agent logs 400 Bad Request with the response body cluster not found. As a workaround, re-run the registration command from the cluster Registration tab on the downstream cluster. To prevent the issue, increase the crt-default-grace-period-minutes setting to cover the expected downtime, or disable the crt-token-ttl-rotation feature flag. See #57078.
Not all cluster tools can be installed on a hardened cluster.
Rancher v2.8.1:
When you attempt to register a new etcd/controlplane node in a CAPR-managed cluster after a failed etcd snapshot restoration, the node can become stuck in a perpetual paused state, displaying the error message [ERROR] 000 received while downloading Rancher connection information. Sleeping for 5 seconds and trying again. As a workaround, you can unpause the cluster by running kubectl edit clusters.cluster clustername -n fleet-default and set spec.unpaused to false. See #43735.
Long-standing Known Issues - RKE2 Provisioning
Rancher v2.7.7:
Due to the backoff logic in various components, downstream provisioned K3s and RKE2 clusters may take longer to re-achieve Active status after a migration. If you see that a downstream cluster is still updating or in an error state immediately after a migration, please let it attempt to resolve itself. This might take up to an hour to complete. See #42834.
Rancher v2.7.6:
Provisioning RKE2/K3s clusters with added (not built-in) custom node drivers causes provisioning to fail. As a workaround, fix the added node drivers after activating. See #37074.
Long-standing Known Issues - K3s Provisioning
Rancher v2.7.6:
Provisioning RKE2/K3s clusters with added (not built-in) custom node drivers causes provisioning to fail. As a workaround, fix the added node drivers after activating. See #37074.
Rancher v2.7.2:
Clusters remain in an Updating state even when they contain nodes in an Error state. See #39164.
Long-standing Known Issues - Rancher App (Global UI)
Rancher v2.10.0:
After deleting a Namespace or Project in the Rancher UI, the Namespace or Project remains visible. As a workaround, refresh the page. See #12220.
Rancher v2.9.2:
Although system mode node pools must have at least one node, the Rancher UI allows a minimum node count of zero. Inputting a zero minimum node count through the UI can cause cluster creation to fail due to an invalid parameter error. To prevent this error from occurring, enter a minimum node count at least equal to the node count. See #11922.
Rancher v2.7.7:
When creating a cluster in the Rancher UI it does not allow the use of an underscore _ in the Cluster Name field. See #9416.
Rancher v2.6.4:
Deployment securityContext section is missing when a new workload is created. This prevents pods from starting when Pod Security Policy Support is enabled. See #4815.
Long-standing Known Issues - EKS
Rancher v2.7.0:
EKS clusters on Kubernetes v1.21 or below on Rancher v2.7 cannot be upgraded. See #39392.
Long-standing Known Issues - Authentication
Rancher v2.9.0:
There are some known issues with the OpenID Connect provider support:
- When the generic OIDC auth provider is enabled, and you attempt to add auth provider users to a cluster or project, users are not populated in the dropdown search bar. This is expected behavior as the OIDC auth provider alone is not searchable. See #46104.
- When the generic OIDC auth provider is enabled, auth provider users that are added to a cluster/project by their username are not able to access resources upon logging in. A user will only have access to resources upon login if the user is added by their userID. See #46105.
- When the generic OIDC auth provider is enabled and an auth provider user in a nested group is logged into Rancher, the user will see the following error when they attempt to create a Project: projectroletemplatebindings.management.cattle.io is forbidden: User "u-gcxatwsnku" cannot create resource "projectroletemplatebindings" in API group "management.cattle.io" in the namespace "p-9t5pg". However, the project is still created. See #46106.
Long-standing Known Issues - Rancher Webhook
Rancher v2.7.2:
A webhook is installed in all downstream clusters. There are several issues that users may encounter with this functionality:
- If you rollback from a version of Rancher v2.7.2 or later, to a Rancher version earlier than v2.7.2, the webhooks will remain in downstream clusters. Since the webhook is designed to be 1:1 compatible with specific versions of Rancher, this can cause unexpected behaviors to occur downstream. The Rancher team has developed a script which should be used after rollback is complete (meaning after a Rancher version earlier than v2.7.2 is running). This removes the webhook from affected downstream clusters. See #40816.
Long-standing Known Issues - Virtualization Management (Harvester)
Rancher v2.13.1:
When upgrading to Rancher v2.13.1 or higher while using Harvester v1.6.1, users may encounter an issue with their Load Balancers in downstream clusters using the Harvester Cloud Provider, and must perform the following workaround to instruct Calico to not use any of the IP/interface managed by kube-vip. See #9767.
Rancher v2.7.2:
If you’re using Rancher v2.7.2 with Harvester v1.1.1 clusters, you won’t be able to select the Harvester cloud provider when deploying or updating guest clusters. The Harvester release notes contain instructions on how to resolve this. See #3750.
Long-standing Known Issues - Backup/Restore
When migrating to a cluster with the Rancher Backup feature, the server-url cannot be changed to a different location. It must continue to use the same URL.
Rancher v2.13.0:
When performing a rollback from Rancher v2.13.0 to v2.12.3 using the backup and restore operator (BRO), the restore does not complete successfully. See #844. To work around this issue, you must scale down your Rancher deployment and uninstall the Webhook chart before performing the restore. For details, refer to this Knowledge Base article.
Rancher v2.7.7:
Due to the backoff logic in various components, downstream provisioned K3s and RKE2 clusters may take longer to re-achieve Active status after a migration. If you see that a downstream cluster is still updating or in an error state immediately after a migration, please let it attempt to resolve itself. This might take up to an hour to complete. See #42834.
Original source - Oct 29, 2026
- Date parsed from source:Oct 29, 2026
- First seen by Releasebot:May 27, 2026
- Modified by Releasebot:Oct 30, 2026
v2.14.7
Rancher updates its Dashboard reference to version 2.14.7.
Update Dashboard refs to v2.14.7 (#58442)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Original source