{"id":"GHSA-6vch-q96h-7gc3","revision":null,"records":[{"revision":"e91b4b2290fb49ca9a307a48d86c3949","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-73500","aliases":[],"title":"etcd: `tlsListener.acceptLoop` spawns unbounded handshake goroutines with no deadline","description":"etcd is a distributed key-value store for the data of a distributed system. Prior to versions 3.5.33, 3.6.14, and 3.7.1, a network attacker who can reach an etcd TLS listener can open many TCP connections and never send a ClientHello. In client/pkg/transport/listener_tls.go, each connection handled by tlsListener.acceptLoop spawns a goroutine that blocks indefinitely inside tls.Conn.Handshake() and remains tracked in the pending map. Unbounded goroutine and map growth can exhaust memory in the etcd process, causing loss of availability for the cluster and, when etcd backs Kubernetes, the control plane. This issue is fixed in versions 3.5.33, 3.6.14, and 3.7.1.","state":0,"publishedAt":"2026-08-12T21:22:25.151+00:00","modifiedAt":"2026-08-13T17:53:16.094+00:00","affected":[{"ecosystem":"Vendor product","name":"etcd","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"etcd-io\",\n                    \"product\": \"etcd\",\n                    \"versions\": [\n                        {\n                            \"version\": \"< 3.5.33\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \">= 3.6.0, < 3.6.14\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \">= 3.7.0-alpha.0, < 3.7.1\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","score":8.7,"severity":"HIGH"}],"references":["https://github.com/etcd-io/etcd/security/advisories/GHSA-6vch-q96h-7gc3","https://github.com/etcd-io/etcd/pull/22130","https://github.com/etcd-io/etcd/commit/2e07efce9745004eb4773cffaada9b5cdf77cff2","https://github.com/etcd-io/etcd/commit/89ff6d50796049d4f1136915ba21504b76e7e372","https://github.com/etcd-io/etcd/commit/8e4dd0679a2c6b095d2a32a749fda2521c7809a3","https://github.com/etcd-io/etcd/commit/f73cba7d920019f91a1ea1f6697833e42731f057","https://github.com/etcd-io/etcd/releases/tag/v3.5.33","https://github.com/etcd-io/etcd/releases/tag/v3.6.14","https://github.com/etcd-io/etcd/releases/tag/v3.7.1"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-73500","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-73500","identifiers":["CVE-2026-73500"]},"retained":false,"historicalAffected":[]},{"revision":"1b75142d7046441dbd99c59dc7f8a799","observedAt":"2026-10-25T15:19:09.409+00:00","statement":{"source":"nvd","id":"CVE-2026-73500","aliases":[],"title":"etcd is a distributed key-value store for the data of a distributed system. Prior to versions 3.5.33, 3.6.14, and 3.7.1, a network attacker who can reach an etcd TLS listener can open many TCP connections and never send a ClientHello. In cl…","description":"etcd is a distributed key-value store for the data of a distributed system. Prior to versions 3.5.33, 3.6.14, and 3.7.1, a network attacker who can reach an etcd TLS listener can open many TCP connections and never send a ClientHello. In client/pkg/transport/listener_tls.go, each connection handled by tlsListener.acceptLoop spawns a goroutine that blocks indefinitely inside tls.Conn.Handshake() and remains tracked in the pending map. Unbounded goroutine and map growth can exhaust memory in the etcd process, causing loss of availability for the cluster and, when etcd backs Kubernetes, the control plane. This issue is fixed in versions 3.5.33, 3.6.14, and 3.7.1.","state":0,"publishedAt":"2026-08-12T22:17:17.29+00:00","modifiedAt":"2026-10-24T15:10:00.19+00:00","affected":[],"metrics":[{"system":"CVSS 4.0 · security-advisories@github.com · Secondary","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","score":8.7,"severity":"HIGH"}],"references":["https://github.com/etcd-io/etcd/commit/2e07efce9745004eb4773cffaada9b5cdf77cff2","https://github.com/etcd-io/etcd/commit/89ff6d50796049d4f1136915ba21504b76e7e372","https://github.com/etcd-io/etcd/commit/8e4dd0679a2c6b095d2a32a749fda2521c7809a3","https://github.com/etcd-io/etcd/commit/f73cba7d920019f91a1ea1f6697833e42731f057","https://github.com/etcd-io/etcd/pull/22130","https://github.com/etcd-io/etcd/releases/tag/v3.5.33","https://github.com/etcd-io/etcd/releases/tag/v3.6.14","https://github.com/etcd-io/etcd/releases/tag/v3.7.1","https://github.com/etcd-io/etcd/security/advisories/GHSA-6vch-q96h-7gc3"],"sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-73500","license":"NIST NVD usage terms; underlying source attribution retained","enrichment":{"sourceStatus":"Awaiting Analysis","weaknesses":["CWE-770"],"productCriteria":[],"sourceDates":{"published":"2026-08-12T22:17:17.290","lastModified":"2026-10-24T15:10:00.190"},"relatedAdvisories":[],"note":"NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON."},"key":"nvd:CVE-2026-73500","identifiers":["CVE-2026-73500"]},"retained":false,"historicalAffected":[]},{"revision":"97f4023d4249491aa201ca4cc2c69d0d","observedAt":"2026-10-24T13:19:41.952+00:00","statement":{"source":"osv","id":"GHSA-6vch-q96h-7gc3","aliases":["BIT-etcd-2026-73500","CVE-2026-73500","GO-2026-6107"],"title":"etcd: `tlsListener.acceptLoop` spawns unbounded handshake goroutines with no deadline","description":"### Impact\n_What kind of vulnerability is it? Who is impacted?_\n\nA network attacker who can reach an etcd TLS listener can open many TCP connections and never send a ClientHello. Each connection spawns a goroutine in the etcd server process that blocks indefinitely inside tls.Conn.Handshake(), and each is tracked in the pending map. Unbounded goroutine and map growth exhausts memory in the etcd process, causing loss of availability for the etcd cluster (and, when etcd backs Kubernetes, the control plane).\n\n### Patches\n_Has the problem been patched? What versions should users upgrade to?_\n\nThis vulnerability is patched in the following versions:\n\n- etcd 3.7.1\n- etcd 3.6.14\n- etcd 3.5.33\n\n### Workarounds\n_Is there a way for users to fix or remediate the vulnerability without upgrading?_\n\nIf upgrading is not immediately possible, then restrict network access. Limit which hosts can reach etcd's client (gRPC) port via firewall rules or network policy, reducing who can attempt exploitation.\n\n### Reporter\n\nVMware By Broadcom","state":0,"publishedAt":"2026-07-24T22:40:16+00:00","modifiedAt":"2026-09-10T03:51:10.799209+00:00","affected":[{"ecosystem":"Go","name":"go.etcd.io/etcd/v3","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"3.7.0-alpha.0"},{"kind":"fixed","version":"3.7.1"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"go.etcd.io/etcd/v3","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"3.6.0"},{"kind":"fixed","version":"3.6.14"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"go.etcd.io/etcd/v3","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"3.5.33"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V4","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"HIGH"}],"references":["https://github.com/etcd-io/etcd/security/advisories/GHSA-6vch-q96h-7gc3","https://github.com/etcd-io/etcd/pull/22130","https://github.com/etcd-io/etcd/commit/2e07efce9745004eb4773cffaada9b5cdf77cff2","https://github.com/etcd-io/etcd/commit/f73cba7d920019f91a1ea1f6697833e42731f057","https://github.com/etcd-io/etcd","https://github.com/etcd-io/etcd/releases/tag/v3.5.33","https://github.com/etcd-io/etcd/releases/tag/v3.6.14","https://github.com/etcd-io/etcd/releases/tag/v3.7.1"],"sourceUrl":"https://github.com/advisories/GHSA-6vch-q96h-7gc3","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-6vch-q96h-7gc3","identifiers":["GHSA-6vch-q96h-7gc3","BIT-etcd-2026-73500","CVE-2026-73500","GO-2026-6107"]},"retained":false,"historicalAffected":[]},{"revision":"af4e000430264a0a90ecb2014d0bff91","observedAt":"2026-10-24T13:19:41.952+00:00","statement":{"source":"osv","id":"GO-2026-6107","aliases":["BIT-etcd-2026-73500","CVE-2026-73500","GHSA-6vch-q96h-7gc3"],"title":"Unbounded TLS handshake goroutines in go.etcd.io/etcd/client/pkg/v3","description":"In go.etcd.io/etcd/client/pkg/v3 before 3.5.33, 3.6.14, and 3.7.1, TLS handshakes on listeners created by NewTLSListener do not enforce a handshake deadline. An unauthenticated network attacker who connects to an etcd TLS listener without sending a ClientHello causes a goroutine and a tracking map entry to block indefinitely. Opening many such connections exhausts memory, leading to a denial of service.","state":0,"publishedAt":"2026-08-18T16:38:10+00:00","modifiedAt":"2026-08-19T21:41:59.2738536+00:00","affected":[{"ecosystem":"Go","name":"go.etcd.io/etcd/client/pkg/v3","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"3.5.33"},{"kind":"introduced","version":"3.6.0"},{"kind":"fixed","version":"3.6.14"},{"kind":"introduced","version":"3.7.0-alpha.0"},{"kind":"fixed","version":"3.7.1"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[],"references":["https://github.com/etcd-io/etcd/security/advisories/GHSA-6vch-q96h-7gc3","https://github.com/etcd-io/etcd/pull/22130","https://github.com/etcd-io/etcd/releases/tag/v3.5.33","https://github.com/etcd-io/etcd/releases/tag/v3.6.14","https://github.com/etcd-io/etcd/releases/tag/v3.7.1"],"sourceUrl":"https://osv.dev/vulnerability/GO-2026-6107","license":"OSV · upstream source license applies","key":"osv:GO-2026-6107","identifiers":["GO-2026-6107","BIT-etcd-2026-73500","CVE-2026-73500","GHSA-6vch-q96h-7gc3"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-10-26T05:26:56.6538334+00:00","complete":true,"records":1756,"lastAttemptAt":"2026-10-26T05:26:56.6538334+00:00","lastSuccessAt":"2026-10-26T05:26:56.7986454+00:00","error":null,"lastVerifiedAt":"2026-10-26T05:26:56.7986482+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-5ba1945314e042c2ced14b33f3680fa71692812d925544312b218f5eb8a26e71-bc703d32c448acb7291b43dd467a47b987ad86f105a430a0e30b03cf6e038792","complete":true,"records":414069,"lastAttemptAt":"2026-10-26T05:25:21.6088408+00:00","lastSuccessAt":"2026-10-26T05:25:21.5943862+00:00","error":null,"lastVerifiedAt":"2026-10-26T05:25:21.6088408+00:00","snapshotPublishedAt":"2026-10-26T04:31:21+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-43321610382942b8ad8c85917eab1546","complete":false,"records":4735,"lastAttemptAt":"2026-10-26T05:26:59.285199+00:00","lastSuccessAt":"2026-10-24T23:18:49.862+00:00","error":"InvalidDataException","lastVerifiedAt":"2026-10-24T23:18:49.862+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":4764,"expectedIdentifiers":13474},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-10-26T05:26:56.6538334+00:00","complete":true,"records":1093,"lastAttemptAt":"2026-10-26T05:26:56.6538334+00:00","lastSuccessAt":"2026-10-26T05:26:56.7998442+00:00","error":null,"lastVerifiedAt":"2026-10-26T05:26:56.799845+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-204a3fb93a00487e8f7f36db01dc851d","complete":true,"records":13413,"lastAttemptAt":"2026-10-26T05:26:57.2787164+00:00","lastSuccessAt":"2026-10-25T16:19:28.681+00:00","error":null,"lastVerifiedAt":"2026-10-25T16:19:28.681+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13474,"expectedIdentifiers":13474},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-2375a4e597279abf92e8747e140fe8da9d421877cd49cae3ac69a2cb78469b2c","complete":true,"records":9779,"lastAttemptAt":"2026-10-26T05:26:56.2433127+00:00","lastSuccessAt":"2026-10-24T13:19:53.1346702+00:00","error":null,"lastVerifiedAt":"2026-10-26T05:26:56.2433127+00:00","snapshotPublishedAt":"2026-10-24T03:03:12+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-16ad89dfea13ab9e9b0108e63a759d63bd4559cc68b58491107d62ee35bbbaf2","complete":true,"records":1965,"lastAttemptAt":"2026-10-26T05:25:21.7989429+00:00","lastSuccessAt":"2026-10-23T16:01:26.4487605+00:00","error":null,"lastVerifiedAt":"2026-10-26T05:25:21.7989429+00:00","snapshotPublishedAt":"2026-10-21T12:18:07+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-7da67a15aa6e56a0e3081a7646dc74d537e6ef974afc593c2b1794ed01970648","complete":true,"records":2969,"lastAttemptAt":"2026-10-26T05:26:56.6198554+00:00","lastSuccessAt":"2026-10-24T13:19:59.1145547+00:00","error":null,"lastVerifiedAt":"2026-10-26T05:26:56.6198554+00:00","snapshotPublishedAt":"2026-10-24T08:47:51+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-f936be991545888acd70d1c7b6fcb3da4be35405bbec4bff46b924c2832f41b1","complete":true,"records":230802,"lastAttemptAt":"2026-10-26T05:26:56.1119243+00:00","lastSuccessAt":"2026-10-26T05:26:54.9585845+00:00","error":null,"lastVerifiedAt":"2026-10-26T05:26:56.1119243+00:00","snapshotPublishedAt":"2026-10-26T04:48:14+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null}]}