Рубрики
Технологии

В Telegram нашли невидимый стикер, который убивает приложение

Иногда, чтобы уронить целое приложение, хватает одного крошечного файла. В чатах Telegram сейчас гуляет стикер весом всего 269 байт, который отправляет мобильный клиент в аварийное закрытие. Это не вирус, не взлом и не кража данных, а просто хитро собранная картинка, от которой приложение падает замертво. Забавно, что случилось это на фоне приятных новостей для владельцев iPhone: в России как раз сильно подешевели рублевые карты пополнения Apple ID, и жизнь в экосистеме понемногу налаживается. А тут такой подарочек в самом популярном мессенджере страны.

Сообщение о вылете Telegram на iPhone. Фото.

Сообщение о вылете Telegram на iPhone

Как крохотный стикер роняет весь Telegram

Вся суть проблемы прячется в геометрии, зашитой внутрь стикера. Внутри объекта спрятана обычная на вид звезда, но с параметром, который требует от нее число вершин порядка десяти в тридцать восьмой степени. Проще говоря, фигура с астрономическим количеством углов. Мобильный клиент честно берется ее отрисовать, добросовестно пытается посчитать все эти точки, но никаких ресурсов на такое не хватает. Итог закономерный: приложение вылетает. Первым на баг наткнулся пользователь Хабра под ником denis-19, он же и описал всю механику.

Как крохотный стикер роняет весь Telegram. Сам стикер в переписке выглядит как пустота. Фото.

Сам стикер в переписке выглядит как пустота

И самое неприятное, что для срабатывания не нужно вообще никаких активных действий: ни переходить по ссылкам, ни скачивать файлы, ни соглашаться на обновление не требуется. Достаточно, чтобы стикер просто прилетел вам в переписку. А прилететь он может кому угодно, у кого есть аккаунт, тем более что завести его сейчас проще простого, и мы подробно разбирали, как зарегистрироваться в Telegram без номера. Так что круг потенциальных жертв тут максимально широкий.

Как крохотный стикер роняет весь Telegram. Ошибка, о которой можно сообщить разработчикам. Фото.

Ошибка, о которой можно сообщить разработчикам

Хорошая новость в том, что ничего страшнее вылета не произойдет. Речь не идет ни о взломе аккаунта, ни о краже переписки, ни об удаленном выполнении кода. Это классическая атака, когда цель не украсть данные, а просто вывести конкретную программу из строя. Ваши сообщения, контакты и файлы в полной безопасности, страдает лишь работоспособность самого клиента. Неприятно, но точно не катастрофа.

Почему баг цепляет вас снова и снова

Отдельная беда этого стикера в его прилипчивости. Поведение бага непредсказуемо: у одних Telegram вылетает сразу при запуске, у других только в момент, когда открываешь конкретную переписку с проблемной звездой. И вот тут начинается самое обидное. После аварийного перезапуска приложение нередко само возвращает вас в тот же диалог и снова пытается отрисовать ту же самую звезду. Получается замкнутый круг: открыл, вылетел, зашел заново, снова оказался в том же чате, снова вылетел. После пары таких заходов невольно начинаешь поглядывать по сторонам, и как раз кстати мы недавно разбирали, чем Syntara отличается от Telegram и других мессенджеров. Запасной вариант под рукой в такие моменты совсем не лишний.

Разорвать эту петлю можно двумя способами: либо почистить кеш приложения, либо целиком удалить проблемный чат. Звучит просто, но на практике сделать это, когда клиент падает каждые пару секунд, бывает та еще задачка. Если баг вас все-таки застал, вот что стоит сделать по шагам:

Почему баг цепляет вас снова и снова. Процесс очистки кэша в Telegram. Фото.

Процесс очистки кэша в Telegram

  1. Зайдите в настройки Telegram.
  2. Выберите пункт «Данные и память».
  3. Перейдите в «Использование памяти».
  4. Нажмите «Очистить весь кэш».
  5. Если не помогло или приложение вылетает сразу после запуска и не дает перейти в настройки, то полностью переустановите программу.

Хотите первыми узнавать про такие косяки и свежие новости мира Apple? Подписывайтесь на наши каналы в Telegram и МАКС, там мы разбираем все самое интересное простым языком.

Кто в зоне риска и грозит ли это айфону

А теперь вопрос, который волнует нас с вами больше всего: страдают ли от стикера-убийцы владельцы iPhone. Пока конкретики мало. Неизвестно, какие именно версии мессенджера затронуты и какие платформы попали под удар, будь то Android, iOS или десктопный клиент. Официального заявления от Telegram на момент публикации нет, как нет и сведений о сроках выхода патча. Так что списывать iOS со счетов рано: механика бага универсальная и упирается в отрисовку тяжелой фигуры, а не в конкретную операционку. Поэтому даже владельцам айфонов расслабляться пока не стоит.

Кто в зоне риска и грозит ли это айфону. Экран авторизации Telegram на iPhone. Фото.

Экран авторизации Telegram на iPhone

Истории со стикерами для Telegram, к слову, совсем не новость. Раньше независимый исследователь описывал похожий по духу баг в обработке анимированных стикеров десктопного клиента. А в этом году в индустрии обсуждали отдельную уязвимость с идентификатором ZDI-CAN-30207, которую сначала оценили в 9,8 балла по шкале CVSS, а позже понизили до 7,0. На баг-трекере мессенджера жалобы на падения из-за конкретных наборов стикеров всплывают с завидной регулярностью. Кстати, раз уж речь зашла о деньгах и безопасности внутри мессенджера, мы отдельно разбирали, безопасно ли покупать Telegram Premium в России.

Запутались в настройках или что-то никак не выходит? Пишите в наш чат в Telegram или МАКС, там всегда подскажут и помогут разобраться.

Что делать до выхода патча

Пока разработчики не выкатили официальное исправление, вся защита сводится к простой бытовой осторожности. Специалисты советуют не открывать чаты с подозрительными стикерами от незнакомых отправителей и внимательно следить за обновлениями приложения в официальных магазинах. Правила банальные, но именно они сейчас работают лучше всего. Собрал короткий чек-лист, который стоит держать в голове:

  • Не открывайте переписки с непонятными стикерами от незнакомцев.
  • Держите Telegram обновленным на последнюю версию.
  • Если приложение зациклилось на вылете, чистите кеш или удаляйте проблемный чат.
  • Не паникуйте: данные и аккаунт эта история не затрагивает.

История с 269-байтным стикером в очередной раз показывает, что опасность не всегда приходит в виде сложного вируса. Иногда хватает одной криво собранной картинки, чтобы приложение, которым пользуются сотни миллионов человек, сложилось как карточный домик. Приятно, что дальше отказа в обслуживании дело не идет, но осадочек остается. А если хочется отвлечься от чужих багов и просто полистать годные гаджеты, заглядывайте в наш канал «Сундук Али-Бабы» в МАКС, там мы собираем самое интересное с AliExpress. Ну а Telegram, будем надеяться, свою маленькую звезду смерти скоро обезвредит.