CVE-2023-50715: Homeassistant User Accounts Disclosed To Unauthenticated Vulnerability

MODERATE
Advisory Identifier: GHSA-jqpc-rc7g-vf83
CVSS 4.3
CWE-200
Published
Advisory Summary

CVE-2023-50715 is a MODERATE (CVSS 4.3) user accounts disclosed to unauthenticated vulnerability (CWE-200: Exposure of Sensitive Information to an Unauthorized Actor) affecting Homeassistant libraries in the PyPI ecosystem. The issue involves user accounts disclosed to unauthenticated actors on the lan. Remediation is available by upgrading affected packages to version 2023.12.3.

CVE-2023-50715 at a Glance

CVE Identifier CVE-2023-50715
GHSA Identifier GHSA-jqpc-rc7g-vf83
Severity MODERATE
CVSS v3.1 Base Score 4.3
CWE Classification CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
Affected Product Homeassistant
Package Ecosystem PyPI
Published Date
Last Updated

Security Impact

CVSS: 4.3

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N).

Attack Vector Adjacent (AV:A)
Attack Complexity Low (AC:L)
Privileges Required None (PR:N)
User Interaction None (UI:N)
Scope Unchanged (S:U)
Confidentiality Low (C:L)
Integrity None (I:N)
Availability None (A:N)

How to Fix CVE-2023-50715

To remediate this vulnerability, upgrade all affected Homeassistant dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

homeassistant fixed: 2023.12.3
pip install homeassistant>=2023.12.3
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

pip show homeassistant

How to Check if You Are Affected

To determine whether your Python environment is affected by CVE-2023-50715, inspect your installed packages using pip:

pip show homeassistant

Analyze the terminal output to locate any version of Homeassistant in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 2023.12.3), your application is affected.

Note: The pip show homeassistant command checks currently installed packages in your active Python environment.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-200: Exposure of Sensitive Information to an Unauthorized Actor, where the product exposes sensitive information to an actor that is not explicitly authorized to have access to that information. In Homeassistant, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Summary The login page discloses all active user accounts to any unauthenticated browsing request originating on the Local Area Network. ### Details Starting the [Home Assistant 2023.12 release](https://www.home-assistant.io/blog/2023/12/06/release-202312/), the login page returns all currently active user accounts to browsing requests from the Local Area Network. Tests showed that this occurs when: - The request is not authenticated and - The request originated locally, meaning on the Home Assistant host local subnet or any other private subnet (`10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fd00::/8, ::ffff:10.0.0.0/104, ::ffff:172.16.0.0/108, ::ffff:192.168.0.0/112`) The rationale behind this is to make the login more user-friendly (see [release blog post](https://www.home-assistant.io/blog/2023/12/06/release-202312/)) and an experience better aligned with other applications that have multiple user-profiles. However, as a result, all accounts are displayed regardless of them having logged in or not and for any device that navigates to the server. This disclosure is mitigated by the fact that it only occurs for requests originating from a LAN address. But note that this applies to the local subnet where Home Assistant resides and to any private subnet that can reach it. ### PoC 1. Place a Home Assistant instance on a private subnet, i.e., 192.168.1.0/24. 2. Create a few users, let's say, three. 3. From any (or another) private subnet on the LAN, like 192.168.2.0/24, open an incognito browser window (to ensure that the browser has no cookies from Home Assistant and therefore is demonstrably unauthenticated) and navigate to the Home Assistant URL. 4. The login page will display all three users, including their profile photo. ### Impact The following CVSS string could be shaped to describe the overall impact of this issue: AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N As seen, the Exploitability metrics are high, and the Impact metrics are low. This is fitting because the problem does not constitute a critical one, but at the same time, it is trivial to exploit. Still, since the mitigation can be so easily implemented in code to eliminate a typical case of information disclosure, it would certainly be worth pursuing.

CVE-2023-50715 Affected Homeassistant Versions

1 component(s)
Fixed Versions:
2023.12.3
Product / Package Ecosystem Affected Versions Fixed Version
homeassistant
PyPI
< 2023.12.3
2023.12.3

References

Frequently Asked Questions

What is CVE-2023-50715?
CVE-2023-50715 is a security vulnerability in Homeassistant involving User accounts disclosed to unauthenticated actors on the LAN under CWE-200: Exposure of Sensitive Information to an Unauthorized Actor.
Which Homeassistant versions are affected?
Affected versions include releases prior to 2023.12.3 across affected packages: homeassistant.
What version fixes CVE-2023-50715?
Upgrading to 2023.12.3 (or the latest patched release for your respective branch) resolves the vulnerability.
Is homeassistant affected?
Yes, homeassistant is affected in releases prior to 2023.12.3. Upgrade your dependency to 2023.12.3 or later.
What is the CVSS score of CVE-2023-50715?
CVE-2023-50715 has a CVSS v3.1 base score of 4.3 (MODERATE) with vector string CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N.
What CWE is associated with CVE-2023-50715?
CVE-2023-50715 is classified under CWE-200: Exposure of Sensitive Information to an Unauthorized Actor (The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.).
How can I check PyPI dependencies for CVE-2023-50715?
Run the dependency tree command: 'pip show homeassistant'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-jqpc-rc7g-vf83",
  "modified" : "2023-12-15T23:19:28Z",
  "published" : "2023-12-15T23:19:28Z",
  "aliases" : [ "CVE-2023-50715" ],
  "summary" : "User accounts disclosed to unauthenticated actors on the LAN",
  "details" : "### Summary\n\nThe login page discloses all active user accounts to any unauthenticated browsing request originating on the Local Area Network.\n\n### Details\n\nStarting the [Home Assistant 2023.12 release](https://www.home-assistant.io/blog/2023/12/06/release-202312/), the login page returns all currently active user accounts to browsing requests from the Local Area Network. Tests showed that this occurs when:\n\n- The request is not authenticated and\n- The request originated locally, meaning on the Home Assistant host local subnet or any other private subnet (`10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fd00::/8, ::ffff:10.0.0.0/104, ::ffff:172.16.0.0/108, ::ffff:192.168.0.0/112`)\n\nThe rationale behind this is to make the login more user-friendly (see [release blog post](https://www.home-assistant.io/blog/2023/12/06/release-202312/)) and an experience better aligned with other applications that have multiple user-profiles.\n\nHowever, as a result, all accounts are displayed regardless of them having logged in or not and for any device that navigates to the server. This disclosure is mitigated by the fact that it only occurs for requests originating from a LAN address. But note that this applies to the local subnet where Home Assistant resides and to any private subnet that can reach it.\n\n### PoC\n\n1. Place a Home Assistant instance on a private subnet, i.e., 192.168.1.0/24.\n2. Create a few users, let's say, three.\n3. From any (or another) private subnet on the LAN, like 192.168.2.0/24, open an incognito browser window (to ensure that the browser has no cookies from Home Assistant and therefore is demonstrably unauthenticated) and navigate to the Home Assistant URL.\n4. The login page will display all three users, including their profile photo.\n\n### Impact\n\nThe following CVSS string could be shaped to describe the overall impact of this issue:\nAV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N\n\nAs seen, the Exploitability metrics are high, and the Impact metrics are low. This is fitting because the problem does not constitute a critical one, but at the same time, it is trivial to exploit. Still, since the mitigation can be so easily implemented in code to eliminate a typical case of information disclosure, it would certainly be worth pursuing.\n",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "PyPI",
      "name" : "homeassistant"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "2023.12.3"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/home-assistant/core/security/advisories/GHSA-jqpc-rc7g-vf83"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2023-50715"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/home-assistant/core/commit/dbfc5ea8f96bde6cd165892f5a6a6f9a65731c76"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/home-assistant/core"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-200" ],
    "severity" : "MODERATE",
    "github_reviewed" : true,
    "github_reviewed_at" : "2023-12-15T23:19:28Z",
    "nvd_published_at" : "2023-12-15T03:15:45Z"
  }
}