Стикер весом 269 байт со звездой на 10³⁸ точек крашит Telegram — приложение уходит в бесконечные падения

Стикер весом 269 байт со звездой на 10³⁸ точек крашит Telegram — приложение уходит в бесконечные падения

Arkadiy Andrienko

Пользователь Хабра обнаружил в Telegram стикер весом 269 байт, из-за которого мобильное приложение аварийно закрывается и может уходить в бесконечные падения. По его словам, стикер приводит к вылету мобильного клиента, а сбой может проявляться по-разному: иногда приложение падает сразу при запуске, иногда — в момент, когда пользователь открывает чат с проблемным стикером.

Причина сбоя кроется в геометрии, зашитой внутрь объекта. Внутри стикера спрятана звезда с параметром, задающим 10³⁸ точек, то есть фигура с астрономическим числом вершин. Мобильный клиент честно пытается отрисовать такой объект, но не справляется с нагрузкой и вылетает.

Нарисовать такую звезду практически невозможно
Нарисовать такую звезду практически невозможно
Стикер весом 269 байт со звездой на 10³⁸ точек крашит Telegram — приложение уходит в бесконечные падения

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

Какие версии Telegram и какие платформы — Android, iOS или десктоп — затронуты багом, на момент публикации не уточнялось. Но уже сейчас ясно, что один 269-байтный стикер способен надолго вывести клиент из строя.

Как думаете, успеет ли Telegram быстро закрыть этот баг, если он действительно ломает приложение одним сообщением?

☁️ Игра года на подходе: в Steam выйдет симулятор смотрения на облака
    Об авторе
    Комментарии2