CVE-2021-41104 json
web_server allows OTA update without checking user defined basic auth username & password
published 2021-09-28 5 y ago modified 2026-06-17 4 mo ago also GHSA-48mj-p7x2-5jfm , PYSEC-2021-351 , EUVD-2021-0071
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.2%
- EPSS 1.2% chance of exploitation in 30 days, percentile 68%
- public exploits
- 0
- none known
Summary
ESPHome is a system to control the ESP8266/ESP32. Anyone with web_server enabled and HTTP basic auth configured on version 2021.9.1 or older is vulnerable to an issue in which `web_server` allows over-the-air (OTA) updates without checking user defined basic auth username & password. This issue is patched in version 2021.9.2. As a workaround, one may disable or remove `web_server`.
Patch / fix
- pypi esphome 2021.9.2
- esphome esphome_firmware 2021.9.2
- github.com/esphome/esphome#2409 commit
- github.com/esphome/esphome@2234f6a commit
- github.com/esphome/esphome@be965a6 commit
- github.com/esphome/esphome#2409 pull request
- github.com/esphome/esphome/releases/tag/2021.9.2 release
- github.com/esphome/esphome/security/advisories/GHSA-48mj-p7x2-5jfm advisory
Exploit prediction
1.21% chance of exploitation in the next 30 days, higher than 68% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| NVD | 2.0 | 4.3 | AV:N/AC:M/Au:N/C:N/I:P/A:N |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | esphome | <2021.9.2 |
2021.9.2 |
Affected products
- esphome esphome
Classification
- Weakness
-
- CWE-306 Missing Authentication for Critical Functionality
References
-
github.com
/esphome/esphome/pull/2409/commits/207cde1667d8c799a197b78ca8a5a14de8d5ca1e
patch, third-party-advisory, web
-
github.com
/esphome/esphome/security/advisories/GHSA-48mj-p7x2-5jfm
web, patch, third-party-advisory, advisory
-
github.com
/esphome/esphome/pull/2409
web
-
github.com
/esphome/esphome/commit/2234f6aacf8cc653307fed80f3750317a82c4f83
web, patch
-
github.com
/esphome/esphome/commit/be965a60eba6bb769e2a5afdbc8eed132f077a59
web
-
github.com
/esphome/esphome/releases/tag/2021.9.2
web, release-notes, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2021-41104
advisory
-
github.com
/esphome/esphome
package
-
github.com
/pypa/advisory-database/tree/main/vulns/esphome/PYSEC-2021-351.yaml
web
Sources
- CVE List CVE-2021-41104
- GitHub Advisory GHSA-48mj-p7x2-5jfm
- NVD CVE-2021-41104
- OSV PYSEC-2021-351
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.