CSIRTS // UNIFIED SECURITY ADVISORY FEEDSYS ● ONLINE · POWERED BY INTELFUSIONS.COM

CVE-2026-71259

highCVSS 8.6covered by 1 sourcefirst seen 2026-08-05
ESPHome through 2026.7.0-dev contains an operator-precedence bug in the cv.url() validator in esphome/config_validation.py: if parsed.scheme and parsed.netloc or parsed.scheme == "file": return parsed.geturl(). Because and binds tighter than or, any file: URI passes validation regardless of netloc. This validator gates the url: field of the external_components YAML directive's git source schema, which is passed to git clone (git supports file:// natively). A crafted external_components block with url: "file:///attacker/repo" clones an attacker-controlled local path, which is then added to Python's import machinery via ESPHome's component loader, executing arbitrary Python code when the YAML configuration is processed (e.g. via esphome config/esphome run).

⚡ Watch CVE-2026-71259

Get an email if CVE-2026-71259 is added to CISA KEV, gains public exploit code, or a new advisory cites it — max one per day, one-click unsubscribe.

Exploitation outlook

Advisory coverage (1)

External references

NVD record for CVE-2026-71259

CVE.org record

Embed the live status

CVE-2026-71259 live status badge — this badge updates automatically when the KEV or exploit status changes. How to embed it →

[![CVE-2026-71259 status](https://www.csirts.com/badge/CVE-2026-71259)](https://www.csirts.com/cve/CVE-2026-71259)