Программисты издания The Register определили структуру бага, который вызывает критический сбой в работе приложений на iOS и OS X, после получения определенной последовательности арабских символов. Уязвимость найдена в компоненте Core Text который отвечает за отображение символов на устройстве.
Напомним, что обнаруженная недавно уязвимость позволяет заблокировать работу приложений (браузера, iMessage и др.) на операционных системах OS X 10.8 Mountain Lion и iOS 6. Определенная последовательность арабских символов, размещенная на web-странице или полученная в виде текстового сообщения вызывает неустранимую ошибку и как минимум блокирует работу приложения.
Браузер Safari, к примеру, и вовсе отказывается функционировать до тех пор, пока пользователь не очистит кеш web-обозревателя. Как сообщают эксперты The Register, проблема заключается в использовании компонентом Core Text целых натуральных чисел для обозначения длины строки, а также индекса массива. При получении системой отрицательного значения, оно интерпретируется как длинное число без знака, обозначающее границу массива. Сбой происходит при обращении к данному массиву другой функции, которая выходит за пределы распределенной области памяти.
Данная уязвимость была устранена разработчиками Apple в новых версиях операционных систем –iOS 7 и OS X Mavericks, однако предыдущие сборки до сих пор остаются под угрозой. Закрыть уязвимость можно с помощью твика GlyphPatch, который делает компонент Core Text невосприимчивым к данному багу.