Исследователь безопасности из EatonWorks обнаружил уязвимость в системе SmartTub, которая предназначена для дистанционного управления гидромассажными ваннами компании Jacuzzi. В итоге он смог получить удалённый доступ к ванным по всему миру.
Система SmartTub позволяет регулировать температуру в гидромассажных ваннах бренда Jacuzzi, а также менять режимы фильтрации и уровень воды.
Исследователь выяснил, что во время авторизации в SmartTub на экране загрузки на мгновение появляется панель администратора. Тогда он скачал JS-файл и изменил несколько строк кода.
Исследователь отметил, что на smarttub.io размещено одностраничное приложение (SPA), созданное с использованием React. Он загрузил пакет JavaScript и искал «неавторизованные» экземпляры.
Приложение проверяет, является ли пользователь администратором, но, если это не так, его перенаправляют на проверку isAdmin:
Логин работает, отправляя имя пользователя и пароль на Auth0. В случае успеха возвращаются токены доступа и идентификатора. Затем токен доступа отправляется в конечную точку Auth0 /userinfo, и возвращается эта информация:
Она содержит список ролей, и isAdmin проверяет, есть ли там Admin. Но ответ HTTP можно перехватить для добавления отсутствующей роли администратора. Исследователь использовал Fiddler для соответствующего изменения HTTP-ответа и, наконец, смог получить полный доступ к панели администратора.
Как указывает автор работы, теоретически злоумышленник может удалённо включить в джакузи жертвы нагрев до максимума или изменить циклы фильтрации. В итоге всего через несколько дней ванная наполнится жидкостью, запах от которой нельзя вывести никакими химикатами.
Более того, данный эксплойт даёт доступ к личным данным всех пользователей, включая их имена, фамилии и адреса электронной почты.
Специалист также взломал приложение SmartTub для Android, обнаружив URL-адрес, который давал ему доступ к дополнительной панели администратора в APK-файле.
Исследователь неоднократно пытался связаться с компанией Jacuzzi, чтобы сообщить об уязвимости, но его сначала попросили прислать ещё больше данных, а потом игнорировали. Однако он выяснил, что уязвимости устранили к июню 2022 года.
При этом сотрудник EatonWorks говорит, что знает и о других ошибках, поэтому он просит сотрудников Jacuzzi всё же связаться с ним.