Гид по технологиям

Как отправка ~4000 смайликов может крашить WhatsApp

• 5 min read • Безопасность • Обновлено 04 Oct 2025
Как эмодзи могут крашить WhatsApp
Как эмодзи могут крашить WhatsApp

Иллюстрация экрана мессенджера WhatsApp, переполненная эмодзи

Что произошло

Исследователь Индраджит Бхуян (Indrajeet Bhuyan) сообщил в публикации и через The Hacker News об ошибке в WhatsApp: при получении сообщения, содержащего почти 4 000 эмодзи, приложение (и веб-клиент) может аварийно завершать работу. Это не требует специального «упаковочного» формата — достаточно последовательности стандартных смайликов.

В прошлом году тот же исследователь обнаружил похожую уязвимость, когда достаточно было отправить ≈2 000 слов в особой кодировке, что приводило к крашу приложения; тогда WhatsApp ограничил длину текстовых сообщений, но, по наблюдению Бхуяна, лимиты для эмодзи не были учтены.

Как это работает (кратко)

По словам исследователя, при вставке примерно 4 200–4 400 эмодзи браузер и/или приложение начинает замедляться. Поскольку ограничение внутренне не блокирует такой ввод, при получении сообщения происходит переполнение буфера и сбой процесса. Это типичный пример ошибки обработки больших входных данных.

Цитата из публикации исследователя:

В WhatsApp Web приложение позволяет вводить большое количество символов, но после набора примерно 4 200–4 400 смайликов браузер начинает тормозить. Так как лимит не достигнут, WhatsApp допускает дальнейшее вставление… когда сообщение получает приложение, происходит переполнение и краш.

На кого влияет

  • WhatsApp на Android (включая версии, упомянутые исследованием, такие как Marshmallow, Lollipop и KitKat). Поменяйте только в рамках заявленного — не делаем допущений о других версиях.
  • WhatsApp Web в браузерах Chrome, Opera и Firefox, по сведениям исследователя.
  • Любые пользователи, получившие подобное сообщение — особенно те, кто не знает, как быстро удалить разговор.

Как защититься — простые шаги для пользователей

  1. Не открывайте подозрительные сообщения и предварительно не прокручивайте чат с большим количеством эмодзи.
  2. Если получили сообщение и приложение падает при открытии, удалите разговор целиком с отправителем (инструкция ниже).
  3. Сделайте резервную копию важных переписок заранее (если не хотите потерять сообщения при удалении чата).
  4. Обновляйте WhatsApp и браузеры по мере выхода исправлений от разработчика.

Важно: удаление разговора без резервной копии приведёт к потере истории переписки с этим контактом.

Что делать, если вы стали жертвой (пошагово)

  • Android (если приложение падает при открытии чата):

    1. Откройте WhatsApp, но не переходите в проблемный чат.
    2. На главном экране найдите контакт в списке бесед, нажмите и удерживайте (не открывая чат).
    3. Выберите «Удалить чат» (Delete chat) или «Удалить беседу» — таким образом вы удалите сообщение с эмодзи и избежите повторного краша.
    4. Если удаление через интерфейс невозможно, воспользуйтесь резервным копированием и восстановлением: удалите приложение, установите заново и восстановите резервную копию, сделав при этом выбор не восстанавливать проблемный диалог.
  • WhatsApp Web (если браузер тормозит):

    1. Не открывайте проблемный поток; закройте вкладку сервиса.
    2. Удалите чат через мобильное приложение (синхронизация удалит его и в Web).

Если вы хотите посмотреть доказательство концепции, видео доступно по ссылке: https://youtu.be/hEMD5y3WGt4

Безопасное воспроизведение (мини-методология для исследователей)

  1. Повторять только в изолированной тестовой среде — не в продакшене.
  2. Использовать тестовый аккаунт и виртуальную машину/эмулятор Android с отключёнными персональными данными.
  3. Собрать пакет эмодзи в текстовый файл и отправить его контролируемому аккаунту.
  4. Наблюдать поведение приложения и собирать логи (логкат для Android, консоль браузера для Web).
  5. Зафиксировать версии приложения и среды.

Критерии приёмки: приложение аварийно завершается или перестаёт реагировать после открытия сообщения; поведение воспроизводимо на нескольких устройствах/браузерах.

Когда этот приём не сработает (контрпримеры)

  • Если WhatsApp обновлён и патч уже закрывает ограничение для эмодзи.
  • Если на устройстве включены ограничения входящих сообщений/фильтры, которые блокируют длинные сообщения.
  • Если сообщение прошло через промежуточный сервис (например, некоторые шлюзы мессенджеров), который нормализует или обрезает вход.

Роль‑ориентированные чеклисты

  • Для обычного пользователя:

    • Не открывать подозрительные сообщения.
    • Создать резервную копию чатов.
    • Удалять разговор с отправителем, если при открытии происходят сбои.
  • Для ИТ‑администратора компании:

    • Развернуть политику обновлений для пользователей.
    • Информировать сотрудников о риске и поведении при получении таких сообщений.
    • При необходимости — временно блокировать передачи мультимедийных сообщений или ограничить размер входящих сообщений на уровне шлюза.
  • Для разработчика WhatsApp/клиента:

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

План инцидентного реагирования и откат

  1. Зафиксировать инцидент: версия приложения, устройство/браузер, шаги воспроизведения.
  2. Приоритет: опубликовать обходной путь для пользователей и выпустить временное предупреждение.
  3. Разработать патч для проверки лимита эмодзи при приёме сообщений и на этапе рендеринга.
  4. Развернуть обновление и мониторить отчёты об ошибках.
  5. Для отката: если патч вызывает регрессии, откатите на предыдущую стабильную версию и примените промежуточную серверную фильтрацию входящих сообщений.

Рекомендации по безопасности для разработчиков

  • Всегда валидируйте длину и состав входных сообщений на сервере и клиенте.
  • Обрабатывайте юникодные символы и смешанные составные эмодзи корректно; учитывайте их кодовые точки и последовательности.
  • Используйте защиту от переполнения буфера и лимитирование памяти при рендеринге сообщений.
  • Логируйте ошибки рендеринга, но не выводите конфиденциальные данные в логах.

Примечания по конфиденциальности и соответствию GDPR

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

Итоговая сводка

Этот баг показывает, как даже простые элементы интерфейса (эмодзи) могут стать источником критических ошибок, если входные данные не ограничены и не проверяются должным образом. Пользователям следует проявлять осторожность, а разработчикам — внедрять жёсткие границы и тестирование.

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

Ключевые выводы:

  • Отправка примерно 4 000 эмодзи может приводить к крашу WhatsApp на некоторых версиях.
  • Лучший обход — удалить разговор и восстановить важные данные из бэкапа.
  • Разработчикам нужно ограничить входные данные и провести тестирование рендеринга эмодзи.

Примечание: следите за официальными обновлениями WhatsApp и установите их сразу после выпуска исправлений.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро