Баги в Signal, Google Duo и Facebook Messenger позволяли устройству вызываемого абонента передавать аудио до того, как он ответит на звонок.
Уязвимости во множестве мобильных приложений для общения по видео позволяли злоумышленникам без разрешения пользователя прослушивать окружающие его звуки еще до того, как он возьмет трубку.
Логические уязвимости в Signal, Google Duo, Facebook Messenger, JioChat и Mocha были обнаружены исследовательницей из Google Project Zero Натали Сильванович (Natalie Silvanovich) и в настоящее время уже исправлены. Однако до исправления они позволяли злоумышленникам заставлять атакуемые устройства передавать аудио на подконтрольные им устройства без необходимости выполнять код.
«Я изучила передающие сигналы машины состояний семи приложений для видеоконференций и обнаружила пять уязвимостей, позволяющих вызывающему устройству заставить вызываемое устройство передавать аудио- или видеоданные. Теоретически, обеспечить согласие вызываемого абонента на передачу аудио или видео довольно просто – прежде чем добавлять какие-либо треки в одноранговое соединение, нужно дождаться, когда абонент примет вызов. Однако, изучив реальные приложения, я увидела, что они разными способами разрешали передачу данных. Большинство из них привело к появлению уязвимостей, позволяющих соединять вызовы без взаимодействия с вызываемым», – пояснила Сильванович.
Как выяснила исследовательница, исправленная в сентябре 2019 года уязвимость в Signal позволяла соединять аудиозвонки путем отправки вызывающим устройством сообщения вызываемому устройству без участия абонента, хотя должно быть наоборот (для разрешения звонка вызываемое устройство должно отправлять сообщение вызывающему).
Уязвимость неопределенности параллелизма (race condition) в Google Duo позволяла вызываемому устройству отправлять вызывающему устройству пакеты данных до того, как абонент ответит на звонок. Проблема была исправлена в декабре 2020 года.
Уязвимость в Facebook Messenger, позволявшая соединять аудиозвонки до того, как вызываемый абонент снимет трубку, была исправлена в ноябре 2020 года.
Две аналогичные уязвимости также были обнаружены в JioChat и Mocha в июле 2020 года. Баги позволяли без ведома пользователя отправлять аудио в JioChat (исправлена в июле 2020 года) и аудио/видео в Mocha (исправлена в августе 2020 года).
Сильванович проверила другие мессенджеры (в том числе Telegram и Viber) на предмет наличия в них вышеописанных уязвимостей, но ничего не обнаружила.
Машина состояний или конечный автомат – математическая абстракция, модель дискретного устройства, имеющего один вход, один выход и в каждый момент времени находящегося в одном состоянии из множества возможных.
Источник: securitylab