HomeAutomation v3.3.2 Open Redirect

2019-12-29T00:00:00
ID ZSL-2019-5559
Type zeroscience
Reporter Gjoko Krstic
Modified 2019-12-29T00:00:00

Description

Title: HomeAutomation v3.3.2 Open Redirect
Advisory ID: ZSL-2019-5559
Type: Local/Remote
Impact: Spoofing
Risk: (2/5)
Release Date: 29.12.2019

Summary

HomeAutomation is an open-source web interface and scheduling solution. It was initially made for use with the Telldus TellStick, but is now based on a plugin system and except for Tellstick it also comes with support for Crestron, OWFS and Z-Wave (using OpenZWave). It controls your devices (switches, dimmers, etc.) based on an advanced scheduling system, taking into account things like measurements from various sensors. With the houseplan view you can get a simple overview of the status of your devices at their location in your house.

Description

Input passed via the 'redirect' GET parameter in 'api.php' script is not properly verified before being used to redirect users. This can be exploited to redirect a user to an arbitrary website e.g. when a user clicks a specially crafted link to the affected script hosted on a trusted domain.

Vendor

Tom Rosenback and Daniel Malmgren - <http://karpero.mine.nu/ha/>

Affected Version

3.3.2

Tested On

Apache/2.4.41 (centos) OpenSSL/1.0.2k-fips
Apache/2.4.29 (Ubuntu)
PHP/7.4.0RC4
PHP/7.3.11
PHP 7.2.24-0ubuntu0.18.04.1

Vendor Status

[06.11.2019] Vulnerability discovered.
[07.11.2019] Vendor contacted.
[29.11.2019] No response from the vendor.
[30.11.2019] Vendor contacted.
[28.12.2019] No response from the vendor.
[29.12.2019] Public security advisory released.

PoC

homeautomation_redirect.txt

Credits

Vulnerability discovered by Gjoko Krstic - <gjoko@zeroscience.mk>

References

[1] <https://packetstormsecurity.com/files/155795/HomeAutomation-3.3.2-Open-Redirect.html>
[2] <https://cxsecurity.com/issue/WLB-2019120132>
[3] <https://exchange.xforce.ibmcloud.com/vulnerabilities/173657>
[4] <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-21998>
[5] <https://nvd.nist.gov/vuln/detail/CVE-2020-21998>

Changelog

[29.12.2019] - Initial release
[24.01.2020] - Added reference [1], [2] and [3]
[19.06.2021] - Added reference [4] and [5]

Contact

Zero Science Lab

Web: <http://www.zeroscience.mk>
e-mail: lab@zeroscience.mk

                                        
                                            
HomeAutomation v3.3.2 Open Redirect


Vendor: Tom Rosenback and Daniel Malmgren
Product web page: http://karpero.mine.nu/ha/
Affected version: 3.3.2

Summary: HomeAutomation is an open-source web interface and scheduling solution.
It was initially made for use with the Telldus TellStick, but is now based on a
plugin system and except for Tellstick it also comes with support for Crestron,
OWFS and Z-Wave (using OpenZWave). It controls your devices (switches, dimmers,
etc.) based on an advanced scheduling system, taking into account things like
measurements from various sensors. With the houseplan view you can get a simple
overview of the status of your devices at their location in your house.

Desc: Input passed via the 'redirect' GET parameter in 'api.php' script is not
properly verified before being used to redirect users. This can be exploited to
redirect a user to an arbitrary website e.g. when a user clicks a specially crafted
link to the affected script hosted on a trusted domain.

===============================================================================
/api.php:
---------

80: if(file_exists(HA_ROOT_PATH."/api/".$_GET["do"].".php")) {
81:         $redirect = getFormVariable("redirect", "");
82:
83:         include(HA_ROOT_PATH."/api/".$_GET["do"].".php");
84:         $output = getFormVariable("output", "text");
85: 
86:         if($redirect != "") {
87:                 redirectTo($redirect);
88:         } else {
89:                 echo $result;
90:         }
91: }

====================

/functions.php:
---------------

2252: function redirectTo($url, $statusCode = 303) {
2253:         if($url !== "") {
2254:                 SaveLog("Redirecting to ".$url, false, "redirects");
2255:                 header('Location: ' . $url, true, $statusCode);
2256:         die();
2257:         }
2258: }

===============================================================================


Tested on: Apache/2.4.41 (centos) OpenSSL/1.0.2k-fips
           Apache/2.4.29 (Ubuntu)
           PHP/7.4.0RC4
           PHP/7.3.11
           PHP 7.2.24-0ubuntu0.18.04.1


Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
                            @zeroscience


Advisory ID: ZSL-2019-5559
Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2019-5559.php


06.11.2019

--


http://localhost/homeautomation_v3_3_2/api.php?do=groups/toggle&groupid=1&status=1&redirect=https://zeroscience.mk