В старых версиях Telegram для Android можно было атаковать устройство через принятый голосовой звонок. Об этом 29 октября сообщила компания NebuSec, обнаружившая уязвимость. Она указывает, что исправление уже вошло в Telegram для Android 12.10.4, сборка 7099.
То есть новость не о том, что сегодня сломали последнюю версию приложения. Сегодня исследователи раскрыли проблему, которую исправили раньше. Для пользователя главное сейчас — убедиться, что на телефоне не остался старый Telegram.
Что требовалось для атаки
По сведениям NebuSec, переданным The Hacker News, атакующему было достаточно обычного аккаунта Telegram, а жертве нужно было ответить на звонок. Компания подтвердила сценарий в личных звонках на Android-телефонах с процессором архитектуры ARM64.
В этом отличие от привычного обмана с просьбой прислать пароль. Здесь речь об ошибке самого приложения: во время разговора оно получает служебные данные от другого клиента и неправильно их обрабатывает. Клик по внешней ссылке в описанном сценарии не нужен, но принятие звонка нужно. Называть такую атаку взломом от одного пропущенного вызова было бы неверно.
NebuSec назвала затронутым диапазон от 8.6.2 до 12.10.3 включительно. Этот перечень приводит The Hacker News со ссылкой на руководителя компании. Подтверждения аналогичной атаки на iPhone, настольные приложения или через групповой звонок в сообщении нет.
Ошибка оказалась в служебных сообщениях звонка
Во время разговора приложения обмениваются не только звуком. Они передают короткие сообщения о состоянии микрофона, камеры и повороте видео. Один из таких типов называется MediaState.
По разбору The Hacker News, ошибка была в чтении этих данных. Код проверял поле с углом поворота, а затем обращался к другому полю, которого в сообщении могло не быть. В опубликованных исходниках 12.10.4 этот участок уже читает правильное поле.
Если по-простому, приложение ожидало одни данные, а использовало другие. Исследователи заявляют, что смогли довести эту ошибку до выполнения собственного кода на устройстве. При этом полные возможности такого кода из опубликованного сообщения не ясны: обещать злоумышленнику доступ ко всему телефону, банковским приложениям или любой переписке оснований нет.
Мы уже рассказывали о другой исправленной уязвимости Telegram Desktop. Она касалась обработки ссылок и локальных файлов на компьютере. Номер исправленной настольной версии к нынешней Android-проблеме не относится.
Что проверить на своём телефоне
Откройте настройки Telegram и посмотрите номер версии внизу страницы. Для этой конкретной ошибки исправленный минимум — 12.10.4. Но искать именно этот старый выпуск не нужно: установите актуальное обновление из привычного официального источника.
Если у вас уже стоит более новая версия, откатываться или переходить на бету ради этой новости не требуется. Исправление выпущено не как экспериментальная функция.
Я бы не откладывал обновление, если приложение давно не обновлялось. Не отвечать незнакомцам разумно, но это не заменяет исправление ошибки в клиенте. А устанавливать APK из сообщения с обещанием «срочной защиты» тем более не стоит.
О применении этой уязвимости в реальных атаках пока нет подтверждённых сведений. The Hacker News направил соответствующие вопросы NebuSec и Telegram; в опубликованном материале ответа нет. Поэтому сама демонстрация исследователей не означает, что каждый подозрительный звонок был попыткой взлома.