На прошлой неделе пользователи Reddit нашли интересный баг, который действует во всех версиях iOS. Если на телефон отправить определённую комбинацию символов, то он уходит в «ребут».
Вот эта комбинация.
Данный баг подробно исследовали на Хабре. Автор перебрал все комбинации символов и нашёл минимальную, которая работает аналогично оригинальной, хотя, может быть, не так красива.
Неизвестно, кто изначально нашёл этот баг, но он не послал информацию в компанию 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. Отсюда ошибки».
01.06.2015 в 22:57
Требуем комбинацию!
01.06.2015 в 23:06
Сайт превращается в баяноплощадку?
02.06.2015 в 06:59
а он и был по жизни баяноплощадкой
Jeffrey Davis
02.06.2015 в 10:57
Даже баяны бывает приятно поперетирать.
Признавайтесь, кто сколько айфонов уже отправил в перезагрузку?
02.06.2015 в 13:27
Леха из загнувшейся вебпланеты как то на швабре втирал про бинарную смс с помощью которой можно взломать модем)
Jeffrey Davis
02.06.2015 в 16:36
Баяны ещё тем хороши, что к моменту их публикации можно успеть глубже обдумать тему, чтоб было меньше эмоций и банальности.
02.06.2015 в 20:18
аааа! как обратно вернуть? смс теперь не открывается…. Зачем, зачем я прочитал эту статью(
04.06.2015 в 21:03
Минимизировал код: ع ॣ ॣ ॣ
Evang
10.06.2015 в 16:42
Ладно проблемы с парсингом и представлением разных языков могут быть, но проблемы с определением длины буфера для сообщения — это действительно у кого-то проблемы…
16.06.2015 в 16:24
Ну и ничего не выходит? Как работало, так и работает.