ghsa-8p25-3q46-8q2p
Vulnerability from github
Summary
Security misconfiguration in edit configuration file API in dashboard component of ESPHome version 2023.12.9 (command line installation) allows authenticated remote attackers to read and write arbitrary files under the configuration directory rendering remote code execution possible.
Details
It is possible to abuse this path traversal vulnerability both in command line installation and Home Assistant add-on, but it is possible to read and write files only under the configuration directory.
The vulnerability is present and exploitable in the command line installation, but it was not possible to confirm an impact in the home assistant add-on version.
PoC
Impact
The issue gives read and write access to files under the configuration directory and allows malicious users to write arbitrary code in python scripts executed during the compilation and flashing of firmwares for ESP boards.
If chained with GHSA-9p43-hj5j-96h5 and GHSA-5925-88xh-6h99, this issue could allow an unauthenticated remote user to gain remote code execution on the machine hosting the dashboard.
It also allows accessing sensitive information such as esphome.json and board firmware source code allowing a user to modify the board firmware, and leaking secrets such as: WiFi network credentials, fallback hotspot WiFi credentials, OTA component authentication password and API encryption key.
Credits
Spike Reply Cybersecurity Team
{ "affected": [ { "package": { "ecosystem": "PyPI", "name": "esphome" }, "ranges": [ { "events": [ { "introduced": "2023.12.9" }, { "fixed": "2024.2.1" } ], "type": "ECOSYSTEM" } ], "versions": [ "2023.12.9" ] } ], "aliases": [ "CVE-2024-27081" ], "database_specific": { "cwe_ids": [ "CWE-22" ], "github_reviewed": true, "github_reviewed_at": "2024-03-01T20:09:19Z", "nvd_published_at": "2024-02-26T17:15:10Z", "severity": "HIGH" }, "details": "### Summary\nSecurity misconfiguration in edit configuration file API in dashboard component of ESPHome version 2023.12.9 (command line installation) allows authenticated remote attackers to read and write arbitrary files under the configuration directory rendering remote code execution possible.\n\n### Details\nIt is possible to abuse this path traversal vulnerability both in command line installation and Home Assistant add-on, but it is possible to read and write files only under the configuration directory. \n\nThe vulnerability is present and exploitable in the command line installation, but it was not possible to confirm an impact in the home assistant add-on version.\n\n### PoC\n\u003cimg width=\"482\" alt=\"/edit?configuration=/config/.esphome/esphome.json\" src=\"https://github.com/esphome/esphome/assets/115887876/d2da3180-976e-4bed-b4b9-35ac960a7fb4\"\u003e\n\u003cbr/\u003e\n\n\u003cimg width=\"344\" alt=\"/edit?configuration=/config/.esphome/build/test01/src/main.cpp (firmware for board named test01)\" src=\"https://github.com/esphome/esphome/assets/115887876/707fb6d7-d4a8-461e-bbb7-05382471e925\"\u003e\n\u003cbr/\u003e\n\n\u003cimg width=\"482\" alt=\"RCE payload POST request on /edit?configuration=.esphome/platformio/packages/tool-esptoolpy/esptool.py\" src=\"https://github.com/esphome/esphome/assets/115887876/c6cb28d8-352d-4fea-b77a-705f63be94e3\"\u003e\n\u003cbr/\u003e\n\n\u003cimg width=\"482\" alt=\"Arbitrary code execution during ESP board flashing\" src=\"https://github.com/esphome/esphome/assets/115887876/5eb0f14c-ceb2-4b15-8898-c02c610763d1\"\u003e\n\n\n### Impact\nThe issue gives read and write access to files under the configuration directory and allows malicious users to write arbitrary code in python scripts executed during the compilation and flashing of firmwares for ESP boards. \n\nIf chained with GHSA-9p43-hj5j-96h5 and GHSA-5925-88xh-6h99, this issue could allow an unauthenticated remote user to gain remote code execution on the machine hosting the dashboard.\n\nIt also allows accessing sensitive information such as esphome.json and board firmware source code allowing a user to modify the board firmware, and leaking secrets such as: WiFi network credentials, fallback hotspot WiFi credentials, OTA component authentication password and API encryption key.\n\n### Credits\nSpike Reply Cybersecurity Team", "id": "GHSA-8p25-3q46-8q2p", "modified": "2025-02-07T20:44:54Z", "published": "2024-03-01T20:09:19Z", "references": [ { "type": "WEB", "url": "https://github.com/esphome/esphome/security/advisories/GHSA-8p25-3q46-8q2p" }, { "type": "ADVISORY", "url": "https://nvd.nist.gov/vuln/detail/CVE-2024-27081" }, { "type": "WEB", "url": "https://github.com/esphome/esphome/commit/d814ed1d4adc71fde47c4df41215bee449884513" }, { "type": "PACKAGE", "url": "https://github.com/esphome/esphome" } ], "schema_version": "1.4.0", "severity": [ { "score": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "type": "CVSS_V3" } ], "summary": "ESPHome vulnerable to remote code execution via arbitrary file write" }
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.