На прошлой неделе пользователи Reddit нашли интересный баг, который действует во всех версиях iOS. Если на телефон отправить определённую комбинацию символов, то он уходит в «ребут».

Вот эта комбинация.

003

Данный баг подробно исследовали на Хабре. Автор перебрал все комбинации символов и нашёл минимальную, которая работает аналогично оригинальной, хотя, может быть, не так красива.

004

Неизвестно, кто изначально нашёл этот баг, но он не послал информацию в компанию Apple, и поэтому в ближайшее время пользователям продукции «яблочной компании» придётся страдать.

После перезагрузки Messages может снова демонстрировать это сообщение как последнее полученное и перезагружаться. Можно попробовать исправить уязвимость, послав на телефон нормальное сообщение и сдвинув старое. Сама Apple рекомендует сделать это с помощью голосового помощника Siri.

Многие сайты уже фильтруют «небезопасную» последовательность глифов из кириллицы/латинского, арабского, маратхи и китайского.

Из заметки пользователя iago:

  • UILabel ни при чем, он не может даже показать текст, останавливаясь на слове Power;
  • UITextField аналогично;
  • UITextView прекрасно отобразил полный текст;
  • UIButton сгенерировал bad access!

Крэш происходит внутри метода CopyFromStorage(TRunGlue&, long) и, судя по ассемблерному коду, в момент копирования байтов длиной long n из одной части памяти в другую (movq 0x90(%rax), %rdx).

Другой пользователь dns78 делится дополнительной информацией: «Всякий bidi процессинг (когда в тексте встречаются сразу символы left-to-right и right-to-left), арабские диалекты, хинди, кхмер и т. п. — поле непаханное для крэшей. Во всех операционных системах. Обработка [например двухбайтных] символов каждого типа естественного языка — это примерно как виртуальная машина. Символы — как опкоды. В сложных языках эти опкоды могут модифицировать на лету [сегмент кода] прочий текст. Правила этих модификаций не до конца внятны. Например, в Sinhala. Отсюда ошибки».

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    10 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии