Update dependency esphome to v2025 [SECURITY] #225
+1
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==2024.10.3->==2025.8.1Warning
Some dependencies could not be looked up. Check the warning logs for more information.
GitHub Vulnerability Alerts
CVE-2025-57808
Summary
On the ESP-IDF platform, ESPHome's
web_serverauthentication check can pass incorrectly when the client-supplied base64-encodedAuthorizationvalue is empty or is a substring of the correct value (e.g., correct username with partial password). This allows access toweb_serverfunctionality (including OTA, if enabled) without knowing any information about the correct username or password.Details
The HTTP basic auth check in
web_server_idf'sAsyncWebServerRequest::authenticateonly compares up toauth.value().size() - auth_prefix_lenbytes of the base64-encodeduser:passstring. This means a client-provided valuer likedXNlcjpz(user:s) will pass the check when the correct value is much longer, e.g.,dXNlcjpzb21lcmVhbGx5bG9uZ3Bhc3M=(user:somereallylongpass).Furthermore, the check will also pass when the supplied value is the empty string, which removes the need to know (or brute force) the username. A browser won't generally issue such a request, but it can easily be done by manually constructing the
Authorizaztionrequest header (e.g., viacurl).PoC
Configure ESPHome as follows:
In a browser, you can correctly log in by supplying username
userand passwordsomereallylongpass... but you can also incorrectly log in by supplying substrings of the password whose base64-encoded digest matches a prefix of the correct digest. (For example, I was able to log into an ESPHome device so configured by supplying passwordsome... or even justs.)You can also use a tool like
curlto manually set anAuthorizationrequest header that always passes the check without any knowledge of the username:Impact
This vulnerability effectively nullifies basic auth support for the ESP-IDF
web_server, allowing auth bypass from another device on the local network with no knowledge of the correct username or password required.Remediation
This vulnerability is fixed in 2025.8.1 and later.
For older versions, disabling the
web_servercomponent on ESP-IDF devices may be prudent, particularly if OTA updates throughweb_serverare enabled.Release Notes
esphome/esphome (esphome)
v2025.8.1Compare Source
USE_API_HOMEASSISTANT_SERVICESif usingtag_scannedaction esphome#10316 by @jesserockzv2025.8.0Compare Source
Full list of changes
New Features
set_min_power&set_max_poweractions forFloatOutputesphome#8934 by @DjordjeMandic (new-feature)switch.controlautomation action esphome#10105 by @edwardtfn (new-feature)control()method to API esphome#10118 by @edwardtfn (new-feature)on_stateesphome#10108 by @edwardtfn (new-feature)device_idto be blank on entities esphome#10217 by @jesserockz (new-feature)New Components
New Platforms
Breaking Changes
touch_pad_read_filteredesphome#9957 by @bdraco (breaking-change)throttlewith native filters esphome#10019 by @kbx81 (breaking-change)throttlewith native filters esphome#10196 by @kbx81 (breaking-change)All changes
Show
Arudinotypo esphome#9404 by @ximexbrighrnessesphome#9491 by @ximexby-code-ownerlabelling esphome#9589 by @jesserockzneeds-docslabelling esphome#9591 by @jesserockzconst.pyesphome#9741 by @DT-art1millis_64_rollover monotonic on SMP esphome#9716 by @RubenKelevraprocess_batch_using stack-allocated PacketInfo array esphome#9703 by @bdracoempty_esphome#9743 by @bdracogneneralanddivisonesphome#9808 by @ximexon_receiveto const esphome#9811 by @jesserockzlooping_components_before setup blocking phase esphome#9820 by @bdracoi2c_master_probeto scan i2c bus esphome#9831 by @jesserockzDeduplicatoresphome#9855 by @kbx81accuracy_decimals=0as default for "target" entities esphome#9842 by @bharvey88Deduplicatorfor sensors esphome#9584 by @kbx81Deduplicatorfor sensors esphome#9863 by @kbx81set_min_power&set_max_poweractions forFloatOutputesphome#8934 by @DjordjeMandic (new-feature)throttle_with_priorityesphome#9937 by @kbx81touch_pad_read_filteredesphome#9957 by @bdraco (breaking-change)Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.