Description
ESPHome through 2026.7.0-dev discloses plaintext passwords via its web_server component. In WebServer::text_json_ (esphome/components/web_server/web_server.cpp), a text entity configured with mode: password (TEXT_MODE_PASSWORD) has its JSON "state" field correctly masked as "********", but the same serialization path unconditionally writes the raw password into the JSON "value" field via set_json_icon_state_value/set_json_value.
Published: 2026-08-05
Score: 6.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

ESPHome through 2026.7.0-dev discloses plaintext passwords via its web_server component. In WebServer::text_json_ (esphome/components/web_server/web_server.cpp), a text entity configured with mode: password (TEXT_MODE_PASSWORD) has its JSON 'state' field correctly masked as "", but the same serialization path unconditionally writes the raw password into the JSON 'value' field via set_json_icon_state_value/set_json_value. This flaw exposes stored passwords in plaintext; an attacker can retrieve them by accessing the GET /text/<entity_id> endpoint or via the /events EventSource stream, potentially exposing Wi‑Fi passwords or API tokens that may allow deeper device or network compromise.

Affected Systems

All ESPHome deployments that include the web_server component and use a TEXT_MODE_PASSWORD configuration are vulnerable, including firmware builds up to 2026.7.0-dev. The vulnerability applies to devices that expose the web_server on the default port 80 without authentication, such as smart home devices, sensors, or other ESP‑based controllers that run the open-source firmware.

Risk and Exploitability

The CVSS base score of 6.5 indicates moderate severity. Because the web_server listens on port 80 by default and requires no authentication, an attacker on the same local network can exploit the flaw by sending a simple HTTP request, obtaining the plaintext password via the JSON response. EPSS score of 0.00208 indicates a very low exploitation probability, and the vulnerability is not listed in the CISA KEV catalog, but the lack of authentication and the direct exposure of credentials make it a practical local‑network attack vector.

Generated by OpenCVE AI on August 10, 2026 at 21:44 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade ESPHome to a patched version in which the web_server component no longer writes the raw password into the JSON value field (consult the repository for the latest stable release).
  • Disable or restrict the web_server component so that it listens only on the loopback interface or requires authentication, preventing unauthenticated local‑network access.
  • If an immediate firmware update is not feasible, block external access to the device’s port 80 by applying network firewall rules or disabling the web_server component until the fix is available.

Generated by OpenCVE AI on August 10, 2026 at 21:44 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 10 Aug 2026 12:00:00 +0000

Type Values Removed Values Added
Description ESPHome through 2026.7.0-dev discloses plaintext passwords via its web_server component. In WebServer::text_json_() (esphome/components/web_server/web_server.cpp), a text entity configured with mode: password (TEXT_MODE_PASSWORD) has its JSON "state" field correctly masked as "********", but the same serialization path unconditionally writes the raw password into the JSON "value" field via set_json_icon_state_value()/set_json_value(). Because web_server listens on port 80 with no authentication by default, any attacker on the local network can retrieve the plaintext password (e.g. WiFi credentials, API tokens) via GET /text/<entity_id> or the /events EventSource stream. ESPHome through 2026.7.0-dev discloses plaintext passwords via its web_server component. In WebServer::text_json_ (esphome/components/web_server/web_server.cpp), a text entity configured with mode: password (TEXT_MODE_PASSWORD) has its JSON "state" field correctly masked as "********", but the same serialization path unconditionally writes the raw password into the JSON "value" field via set_json_icon_state_value/set_json_value.
Title ESPHome web_server - Plaintext Password Disclosure via JSON "value" Field ESPHome web_server Plaintext Password Disclosure via JSON "value" Field

Mon, 10 Aug 2026 11:45:00 +0000

Type Values Removed Values Added
Title ESPHome web_server Plaintext Password Disclosure via JSON "value" Field ESPHome web_server - Plaintext Password Disclosure via JSON "value" Field

Wed, 05 Aug 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 05 Aug 2026 15:00:00 +0000

Type Values Removed Values Added
First Time appeared Esphome
Esphome esphome
Vendors & Products Esphome
Esphome esphome

Wed, 05 Aug 2026 13:15:00 +0000

Type Values Removed Values Added
Description ESPHome through 2026.7.0-dev discloses plaintext passwords via its web_server component. In WebServer::text_json_() (esphome/components/web_server/web_server.cpp), a text entity configured with mode: password (TEXT_MODE_PASSWORD) has its JSON "state" field correctly masked as "********", but the same serialization path unconditionally writes the raw password into the JSON "value" field via set_json_icon_state_value()/set_json_value(). Because web_server listens on port 80 with no authentication by default, any attacker on the local network can retrieve the plaintext password (e.g. WiFi credentials, API tokens) via GET /text/<entity_id> or the /events EventSource stream.
Title ESPHome web_server Plaintext Password Disclosure via JSON "value" Field
Weaknesses CWE-522
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: TuranSec

Published:

Updated: 2026-08-10T11:46:22.212Z

Reserved: 2026-08-05T12:23:34.966Z

Link: CVE-2026-71260

cve-icon Vulnrichment

Updated: 2026-08-05T15:30:42.984Z

cve-icon NVD

Status : Deferred

Published: 2026-08-05T13:24:50.117

Modified: 2026-08-26T17:13:24.800

Link: CVE-2026-71260

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-10T21:45:03Z

Weaknesses
  • CWE-522

    Insufficiently Protected Credentials