Проблема схожа с обнаруженным в начале текущего года багом в функции Apple FaceTime в iOS, также позволявшем услышать звук и увидеть видео с устройства собеседника до того, как он ответит на звонок.
Уязвимость в Signal, обнаруженная специалистом команды Google Project Zero Натали Сильванович (Natalie Silvanovich), связана с методом handleCallConnected, отвечающим за конечное соединение вызова.
"В обычной ситуации вызов [handleCallConnected] происходит в двух случаях: когда вызываемое устройство принимает звонок при выборе пользователем ‘принять' или когда вызывающее устройство получает сообщение ‘соединить', если вызываемый принял звонок. С помощью модифицированного клиента возможно отправить сообщение ‘соединить' на вызываемое устройство во время звонка, но до того, как пользователь его принял. Таким образом вызов будет принят даже без участия пользователя", - пишет Сильванович.
Как отмечается, уязвимость срабатывает только при аудиозвонках, для видео звонков данный метод не подходит, поскольку в приложении Signal пользователям требуется вручную включить камеру.
Несмотря на то, что схожая проблема имеется и в iOS-версии мессенджера, в зоне риска находятся только пользователи Android-версии, поскольку в iOS-клиенте происходит сбой вызова из-за ошибки в пользовательском интерфейсе.
Разработчики приложения были проинформированы о проблеме и устранили ее спустя несколько часов после сообщения исследовательницы. Исправленная версия Signal для Android (4.48.13) доступна на GitHub.
