Стикер 269 байт убивает Telegram. Как вернуть приложение к жизни

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что делать, если Telegram закрывается сразу после запуска

Самый неприятный случай, когда приложение падает раньше, чем вы успеваете открыть настройки. Очистить кэш так не получится, поэтому действовать придется в обход. Главное, что переписка от этого не пострадает: обычные чаты Telegram хранит в облаке, а не только в телефоне.

  1. Проверьте обновления Telegram в App Store и установите последнюю версию.
  2. Если есть компьютер, откройте на нем Telegram версии 7.2.8 или новее. Найдите чат со стикером и удалите это сообщение или весь чат. В личной переписке сообщение можно удалить сразу у обоих собеседников, и удаление появится на всех ваших устройствах.
  3. Если компьютера под рукой нет, удалите Telegram с iPhone и установите заново.
  4. После входа не открывайте проблемный чат, а удалите его прямо из списка: смахните по нему влево и нажмите «Удалить».

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

Если стикер прислали в группу, удалить чужое сообщение у всех может только администратор. Вам хватит удалить чат у себя или выйти из группы, а потом дождаться обновления Telegram, в котором сбой закрыт.

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

А теперь вопрос, который волнует нас с вами больше всего: страдают ли от стикера-убийцы владельцы iPhone. По данным Хабра, сбой затрагивает и мобильные, и десктопные клиенты Telegram, так что айфоны тоже в зоне риска: механика бага универсальная и упирается в отрисовку тяжелой фигуры, а не в конкретную операционку. Telegram для компьютера уже получил исправления. В списке изменений версии 7.2.7 от 7 сентября указано исправление сбоев из-за некорректных файлов Lottie, в этом формате хранятся анимированные стикеры, а в версии 7.2.8 от 9 сентября закрыли еще часть таких сбоев. В описаниях обновлений для iPhone и Android прямо об этом не сказано, а официального комментария от Telegram так и нет. Поэтому первым делом обновите мессенджер в App Store до последней версии.

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

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

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

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

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

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

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

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

TelegramОбзоры приложений для iOS и MacСмартфоны AppleСоветы по работе с Apple