ESPHome through 2026.7.0-dev discloses plaintext passwords via its webserver component. In WebServer::textjson_() (esphome/components/webserver/webserver.cpp), a text entity configured with mode: password (TEXTMODEPASSWORD) has its JSON "state" field correctly masked as "********", but the same serialization path unconditionally writes the raw password into the JSON "value" field via setjsoniconstatevalue()/setjsonvalue(). 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.
{
"cna_assigner": "TuranSec",
"cwe_ids": [
"CWE-522"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/71xxx/CVE-2026-71260.json"
}{
"source": [
"AFFECTED_FIELD",
"DESCRIPTION"
],
"extracted_events": [
{
"introduced": "0"
},
{
"last_affected": "2026.7.0"
},
{
"fixed": "2026.7.0-dev"
}
]
}