Во встроенном модуле валидации форматов данных операционной системы OS X обнаружился забавный баг. Если написать в любом приложении OS X восемь символов “File:///», то программа падает. Баг распространяется и на текстовый редактор, и на консоль, если попробовать из консоли открыть файл с краш-репортом. Более того, рушится даже сама программа Crash Reporter UI, если вы попытаетесь отправить в Apple сообщение о баге.

Как сказано выше, баг присутствует во встроенном модуле проверки форматов данных операционной системы OS X, начиная с версии OS X Mountain Lion (10.8), включая самую последнюю бету. В предыдущих версиях OS X бага нет. Нештатное поведение присутствует во всех программах, которые используют этот модуль. Это все нативные приложения OS X 10.8+, а также многие сторонние программы, в том числе браузер Google Chrome.

Кроме заветной комбинации “File:///”, падение можно спроворцировать комбинациями типа «File://a» или «File://aa», или с другими символами, если набирать быстро или медленно, но здесь результат не гарантирован. Люди продолжают эксперименты (см. видео).


Видеофайл в формате mov

Одно из наиболее достоверных объяснений гласит, что баг связан с механизмом автоматического определения форматов checkDataDetectors. Модуль checkDataDetectors извлекает из текста все URL’ы файлов по схеме file:// и передаёт их для обработки в DDResultCopyExtractURL. Там осуществляется валидация URL’в, а в случае “File:///» и тому подобных строк выдаётся исключение NSInternalInconsistencyException. Из-за него и рушится любая программа, потому что это исключение никак не обрабатывается.

Разница во времени падения программы связана с тем, что модуль NSSpellCheckerCheckString срабатывает не сразу, а через определённую паузу после окончания ввода символов.

Чтобы избавиться от бага при вводе символов с клавиатуры, можно зайти в настройки System PreferencesLanguage & TextText и убрать птички с пунктов Correct spelling automatically и Use symbol and text substitution. Однако, модуль checkDataDetectors всё равно будет срабатывать при открытии других файлов, что открывает некоторые возможности по написанию эксплойтов для OS X, в том числе с запуском собственного шелл-кода.

Есть возможности и для троллинга пользователей OS X, которые ещё не в курсе проблемы.

2 комментария

  1. 24.03.2015 at 11:40

    Грохнули старые комменты…

  2. 07.04.2015 at 10:22

    В Mac OS не работает…

Оставить мнение