Unless I’m reading the blog posted by the security team that posted these vulnerabilities this sounds a little bit overblown. Some things that stuck out to me
Please correct me if I’m mistaken but it appears that if you are running HAOS (Home Assistant Operating System) then most of these vulnerabilities are a non issue and the biggest potential issues is specific integrations where the Integration provider handles the authentication and uses weak or poor authentication. I don’t believe this is something Nabu Casa/Home Assistant developers have any control over but please correct me if I am mistaken.
I have worked for a software company and if it connects to the internet, it probably has a security vulnerability. With that said, that’s why security teams and researches exist. They also must inform the software maker before publishing their results to give them time to patch the security vulnerability and it looks like it was handled in a very timely fashion based in the timeline below.
It appears to me that if you are running HAOS your okay outside possibly running integrations where the Integration provider handles the authentication and does it poorly. I apologize if I’m rehashing some things that have already been said but this is quite a long thread so it’ is difficult to go through every single post.
The below can be found HERE and list ways to run shell commands to find potential integrations that may pose a security risk.
Nothing is security proof and considering this was posted by a security research team who’s job is to FIND security vulnerabilities it’s hard to determine if these types of attacks were ever used in the wild. I would imagine most people here are running HAOS so based on the below, certain integrations COULD be an issue still but the Core and Supervisor security vulnerabilities have been patched and the security research team was no longer able to use the initial attacks after these were updated to the versions specified below.
Once again, if I’m mistaken in anything above please correct me. If you want 100 percent bullet proof security then cancel your internet because all software has some security vulnerability. Nothing is bullet proof and considering devices like this exist even not having internet doesn’t mean you are 100 percent secure.
Home Assistant can be installed in four different ways. These different installation types give users the ability to run Home Assistant according to their requirements and customise how much or how little is automatically managed.
The recommended installation method is via the Home Assistant Operating System (HAOS), which is a fully fledged Linux based operating system that runs the various Home Assistant components in Docker containers. This is intended to be run on devices like a Raspberry Pi, or within a virtual machine.
The standalone Home Assistant Container installation method is also recommended and provides a convenient way to run Home Assistant on a machine with Docker. This installation method does not come with the Supervisor component, so it misses out on a few features, namely add-ons.
The Home Assistant Supervised installation involves manually installing the Supervisor component on a Linux system which gives the full Home Assistant experience while letting the user manage the operating system themself.
Finally, the Home Assistant Core installation method is another manual installation in which the user runs the Home Assistant Core application directly with Python. As with the Home Assistant Container method, this does not come with the Supervisor component.
The three main components of a Home Assistant installation are the Home Assistant Core application, the Supervisor and the Operating System. All installations run at least the Core, while only the Supervised and Operating System installations run the Supervisor component. Since the Operating System component is only included in HAOS installations and because of its harder-to-reach attack surface, it was not an area of significant focus during our research. The other two components however, proved to be quite interesting to look at.
The three main components of a Home Assistant installation are the Home Assistant Core application, the Supervisor and the Operating System. All installations run at least the Core, while only the Supervised and Operating System installations run the Supervisor component. Since the Operating System component is only included in HAOS installations and because of its harder-to-reach attack surface, it was not an area of significant focus during our research. The other two components however, proved to be quite interesting to look at.
The Supervisor component is a Python program that lives in the home-assistant/supervisor repository. Its responsibility is to manage various parts of the Home Assistant installation by doing things like actually running/updating Home Assistant Core, managing backups, managing add-ons and even updating the operating system (when running a HAOS installation).
It exposes a HTTP API which is how the Core communicates with it. In the default HAOS installation, this service is not exposed on the network, so it is not possible to access this API remotely or even from within the same LAN.
As a simple example, the Telegram bot integration has a webhook endpoint which disables the default authentication check. It does perform some authentication in its own way though, in this case, based on the requester’s IP address:
The reason why this is interesting is because it means we have some fresh attack surface to look at. Integrations which perform authentication in their own way might do so poorly, which could lead to an authentication bypass…
A timeline of the disclosure process was as follows:
17/02/2023 - We begin researching the Home Assistant Supervisor Integration and discover the vulnerability
20/02/2023 - Vulnerability report sent to [email protected]
27/02/2023 - Follow up email sent to confirm receipt of report
28/02/2023 - Confirmation of receipt from Home Assistant
01/03/2023 - Home Assistant replies detailing plans to release hardening fixes, request a CVE and publish a blog post
01/03/2023 - CVE-2023-27482 reserved
01/03/2023 - Home Assistant 2023.3.0 is released, containing hardening in the HTTP integration security filters middleware
08/03/2023 - Home Assistant Supervisor 2023.03.1 is released, containing hardening in the security middleware
09/03/2023 - Home Assistant 2023.3.2 is released, containing further fixes in the Supervisor integration
09/03/2023 - Home Assistant publishes blog post and advisory
21/03/2023 - Bypass affecting Home Assistant Core <=2023.3.1 discovered and reported to vendor
21/03/2023 - Confirmation of receipt from Home Assistant
22/03/2023 - Home Assistant Supervisor 2023.03.2 is released, containing mitigation against the bypass
26/03/2023 - Bypass affecting Home Assistant Core <=2023.3.1 and Supervisor <=2023.03.2 discovered
27/03/2023 - Bypass reported to vendor
28/03/2023 - Confirmation of receipt from Home Assistant
29/03/2023 - Home Assistant Supervisor 2023.03.3 is released, containing mitigation against the bypass
03/05/2023 - Draft blog post shared with Home Assistant
04/05/2023 - Feedback on blog post received from Home Assistant
04/05/2023 - Advisory updated to reflect correct versions
10/05/2023 - Public release of elttam advisories and blog post