ESPHome vulnerable to stored Cross-site Scripting in edit configuration file API
Description
ESPHome is a system to control your ESP8266/ESP32 for Home Automation systems. Starting in version 2023.12.9 and prior to version 2024.2.2, editing the configuration file API in dashboard component of ESPHome version 2023.12.9 (command line installation and Home Assistant add-on) serves unsanitized data with Content-Type: text/html; charset=UTF-8, allowing a remote authenticated user to inject arbitrary web script and exfiltrate session cookies via Cross-Site scripting. It is possible for a malicious authenticated user to inject arbitrary Javascript in configuration files using a POST request to the /edit endpoint, the configuration parameter allows to specify the file to write. To trigger the XSS vulnerability, the victim must visit the page /edit?configuration=[xss file]. Abusing this vulnerability a malicious actor could perform operations on the dashboard on the behalf of a logged user, access sensitive information, create, edit and delete configuration files and flash firmware on managed boards. In addition to this, cookies are not correctly secured, allowing the exfiltration of session cookie values. Version 2024.2.2 contains a patch for this issue.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
esphomePyPI | >= 2023.12.9, < 2024.2.2 | 2024.2.2 |
Affected products
1Patches
137d2b3c7977aMerge pull request from GHSA-9p43-hj5j-96h5
1 file changed · +1 −0
esphome/dashboard/web_server.py+1 −0 modified@@ -820,6 +820,7 @@ async def get(self, configuration: str | None = None) -> None: None, self._read_file, filename, configuration ) if content is not None: + self.set_header("Content-Type", "application/yaml") self.write(content) def _read_file(self, filename: str, configuration: str) -> bytes | None:
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
3- github.com/advisories/GHSA-9p43-hj5j-96h5ghsaADVISORY
- github.com/esphome/esphome/commit/37d2b3c7977a4ccbec59726ca7549cb776661455ghsax_refsource_MISCWEB
- github.com/esphome/esphome/security/advisories/GHSA-9p43-hj5j-96h5ghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.