diff --git a/README.md b/README.md
index 404eb6834416e993c955b336813e4755f339a792..790a5e55f822c17691cc29fa75378eb29c7b7284 100644
--- a/README.md
+++ b/README.md
@@ -161,7 +161,7 @@ Note: Upstart/SysV init based OS types are not supported.
 
 - Core
   - [kubernetes](https://github.com/kubernetes/kubernetes) v1.29.3
-  - [etcd](https://github.com/etcd-io/etcd) v3.5.10
+  - [etcd](https://github.com/etcd-io/etcd) v3.5.12
   - [docker](https://www.docker.com/) v24.0 (see [Note](#container-runtime-notes))
   - [containerd](https://containerd.io/) v1.7.13
   - [cri-o](http://cri-o.io/) v1.29.1 (experimental: see [CRI-O Note](docs/cri-o.md). Only on fedora, ubuntu and centos based OS)
diff --git a/roles/kubespray-defaults/defaults/main/download.yml b/roles/kubespray-defaults/defaults/main/download.yml
index bcfcfe14f43650b96d5139b3b377d1b80ddb46ea..2ea96998946ca238fd955f2ce257356ae2fd32ec 100644
--- a/roles/kubespray-defaults/defaults/main/download.yml
+++ b/roles/kubespray-defaults/defaults/main/download.yml
@@ -139,9 +139,9 @@ pod_infra_supported_versions:
 pod_infra_version: "{{ pod_infra_supported_versions[kube_major_version] }}"
 
 etcd_supported_versions:
-  v1.29: "v3.5.10"
-  v1.28: "v3.5.10"
-  v1.27: "v3.5.10"
+  v1.29: "v3.5.12"
+  v1.28: "v3.5.12"
+  v1.27: "v3.5.12"
 etcd_version: "{{ etcd_supported_versions[kube_major_version] }}"
 
 crictl_supported_versions: