{"api_version":"1","generated_at":"2026-09-23T00:05:20+00:00","cve":"CVE-2026-73546","urls":{"html":"https://cve.report/CVE-2026-73546","api":"https://cve.report/api/cve/CVE-2026-73546.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-73546","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-73546"},"summary":{"title":"Envoy: Stored XSS in Admin Stats Interface (/stats?format=html)","description":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.36.10, 1.37.6, 1.38.4, and 1.39.1, Envoy's /stats?format=html admin endpoint uses StatsHtmlRender, which sanitizes string statistic values but emits statistic names without HTML encoding. A data-plane component such as grpc_stats with stats_for_all_methods enabled can incorporate attacker-controlled path segments into cached dynamic statistic names. When an operator views the HTML stats page, the stored name can execute script with the admin interface's origin and issue privileged same-origin requests. The relevant scope boundary is that the admin interface must be browser-accessible and an enabled component must persist attacker-influenced text in statistic names. This issue is fixed in versions 1.36.10, 1.37.6, 1.38.4, and 1.39.1.","state":"PUBLISHED","assigner":"GitHub_M","published_at":"2026-09-21 20:17:28","updated_at":"2026-09-21 21:17:09"},"problem_types":["CWE-79","CWE-79 CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"],"metrics":[{"version":"3.1","source":"security-advisories@github.com","type":"Secondary","score":"7.4","severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","baseScore":7.4,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"NONE"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"7.4","severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","data":{"attackComplexity":"HIGH","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":7.4,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","version":"3.1"}}],"references":[{"url":"https://github.com/envoyproxy/envoy/commit/ab63a0e52b5a28472f2ff865b6464ae4004f7593","name":"https://github.com/envoyproxy/envoy/commit/ab63a0e52b5a28472f2ff865b6464ae4004f7593","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/envoyproxy/envoy/commit/11d34660ca0322eb125d045a564d9d87f016397f","name":"https://github.com/envoyproxy/envoy/commit/11d34660ca0322eb125d045a564d9d87f016397f","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/envoyproxy/envoy/commit/884d30c56b835d5801733ae1dc38c94a08de23e8","name":"https://github.com/envoyproxy/envoy/commit/884d30c56b835d5801733ae1dc38c94a08de23e8","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/envoyproxy/envoy/releases/tag/v1.37.6","name":"https://github.com/envoyproxy/envoy/releases/tag/v1.37.6","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/envoyproxy/envoy/releases/tag/v1.39.1","name":"https://github.com/envoyproxy/envoy/releases/tag/v1.39.1","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/envoyproxy/envoy/releases/tag/v1.36.10","name":"https://github.com/envoyproxy/envoy/releases/tag/v1.36.10","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/envoyproxy/envoy/commit/9484e17c34353662f9bfd30c74f61fa8c9ee7b83","name":"https://github.com/envoyproxy/envoy/commit/9484e17c34353662f9bfd30c74f61fa8c9ee7b83","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/envoyproxy/envoy/security/advisories/GHSA-pv9h-4fxf-7vrg","name":"https://github.com/envoyproxy/envoy/security/advisories/GHSA-pv9h-4fxf-7vrg","refsource":"134c704f-9b21-4f2e-91b3-4a467353bcc0","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/envoyproxy/envoy/releases/tag/v1.38.4","name":"https://github.com/envoyproxy/envoy/releases/tag/v1.38.4","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-73546","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-73546","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"envoyproxy","product":"envoy","version":"affected < 1.36.10","platforms":[]},{"source":"CNA","vendor":"envoyproxy","product":"envoy","version":"affected >= 1.37.0, < 1.37.6","platforms":[]},{"source":"CNA","vendor":"envoyproxy","product":"envoy","version":"affected >= 1.38.0, < 1.38.4","platforms":[]},{"source":"CNA","vendor":"envoyproxy","product":"envoy","version":"affected >= 1.39.0, < 1.39.1","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2026-73546","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","timestamp":"2026-09-21T20:07:05.340873Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2026-09-21T20:07:34.119Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"references":[{"tags":["exploit"],"url":"https://github.com/envoyproxy/envoy/security/advisories/GHSA-pv9h-4fxf-7vrg"}],"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"product":"envoy","vendor":"envoyproxy","versions":[{"status":"affected","version":"< 1.36.10"},{"status":"affected","version":">= 1.37.0, < 1.37.6"},{"status":"affected","version":">= 1.38.0, < 1.38.4"},{"status":"affected","version":">= 1.39.0, < 1.39.1"}]}],"descriptions":[{"lang":"en","value":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.36.10, 1.37.6, 1.38.4, and 1.39.1, Envoy's /stats?format=html admin endpoint uses StatsHtmlRender, which sanitizes string statistic values but emits statistic names without HTML encoding. A data-plane component such as grpc_stats with stats_for_all_methods enabled can incorporate attacker-controlled path segments into cached dynamic statistic names. When an operator views the HTML stats page, the stored name can execute script with the admin interface's origin and issue privileged same-origin requests. The relevant scope boundary is that the admin interface must be browser-accessible and an enabled component must persist attacker-influenced text in statistic names. This issue is fixed in versions 1.36.10, 1.37.6, 1.38.4, and 1.39.1."}],"metrics":[{"cvssV3_1":{"attackComplexity":"HIGH","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":7.4,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-79","description":"CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-09-21T19:53:21.443Z","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M"},"references":[{"name":"https://github.com/envoyproxy/envoy/security/advisories/GHSA-pv9h-4fxf-7vrg","tags":["x_refsource_CONFIRM"],"url":"https://github.com/envoyproxy/envoy/security/advisories/GHSA-pv9h-4fxf-7vrg"},{"name":"https://github.com/envoyproxy/envoy/commit/11d34660ca0322eb125d045a564d9d87f016397f","tags":["x_refsource_MISC"],"url":"https://github.com/envoyproxy/envoy/commit/11d34660ca0322eb125d045a564d9d87f016397f"},{"name":"https://github.com/envoyproxy/envoy/commit/884d30c56b835d5801733ae1dc38c94a08de23e8","tags":["x_refsource_MISC"],"url":"https://github.com/envoyproxy/envoy/commit/884d30c56b835d5801733ae1dc38c94a08de23e8"},{"name":"https://github.com/envoyproxy/envoy/commit/9484e17c34353662f9bfd30c74f61fa8c9ee7b83","tags":["x_refsource_MISC"],"url":"https://github.com/envoyproxy/envoy/commit/9484e17c34353662f9bfd30c74f61fa8c9ee7b83"},{"name":"https://github.com/envoyproxy/envoy/commit/ab63a0e52b5a28472f2ff865b6464ae4004f7593","tags":["x_refsource_MISC"],"url":"https://github.com/envoyproxy/envoy/commit/ab63a0e52b5a28472f2ff865b6464ae4004f7593"},{"name":"https://github.com/envoyproxy/envoy/releases/tag/v1.36.10","tags":["x_refsource_MISC"],"url":"https://github.com/envoyproxy/envoy/releases/tag/v1.36.10"},{"name":"https://github.com/envoyproxy/envoy/releases/tag/v1.37.6","tags":["x_refsource_MISC"],"url":"https://github.com/envoyproxy/envoy/releases/tag/v1.37.6"},{"name":"https://github.com/envoyproxy/envoy/releases/tag/v1.38.4","tags":["x_refsource_MISC"],"url":"https://github.com/envoyproxy/envoy/releases/tag/v1.38.4"},{"name":"https://github.com/envoyproxy/envoy/releases/tag/v1.39.1","tags":["x_refsource_MISC"],"url":"https://github.com/envoyproxy/envoy/releases/tag/v1.39.1"}],"source":{"advisory":"GHSA-pv9h-4fxf-7vrg","discovery":"UNKNOWN"},"title":"Envoy: Stored XSS in Admin Stats Interface (/stats?format=html)"}},"cveMetadata":{"assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","assignerShortName":"GitHub_M","cveId":"CVE-2026-73546","datePublished":"2026-09-21T19:53:21.443Z","dateReserved":"2026-08-12T20:53:46.379Z","dateUpdated":"2026-09-21T20:07:34.119Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-09-21 20:17:28","lastModifiedDate":"2026-09-21 21:17:09","problem_types":["CWE-79","CWE-79 CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"],"metrics":{"cvssMetricV31":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","baseScore":7.4,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"NONE"},"exploitabilityScore":2.2,"impactScore":5.2}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-09-21T20:07:05.340873Z","id":"CVE-2026-73546","options":[{"exploitation":"poc"},{"automatable":"no"},{"technicalImpact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"73546","Ordinal":"1","Title":"Envoy: Stored XSS in Admin Stats Interface (/stats?format=html)","CVE":"CVE-2026-73546","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"73546","Ordinal":"1","NoteData":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.36.10, 1.37.6, 1.38.4, and 1.39.1, Envoy's /stats?format=html admin endpoint uses StatsHtmlRender, which sanitizes string statistic values but emits statistic names without HTML encoding. A data-plane component such as grpc_stats with stats_for_all_methods enabled can incorporate attacker-controlled path segments into cached dynamic statistic names. When an operator views the HTML stats page, the stored name can execute script with the admin interface's origin and issue privileged same-origin requests. The relevant scope boundary is that the admin interface must be browser-accessible and an enabled component must persist attacker-influenced text in statistic names. This issue is fixed in versions 1.36.10, 1.37.6, 1.38.4, and 1.39.1.","Type":"Description","Title":"Envoy: Stored XSS in Admin Stats Interface (/stats?format=html)"}]}}}