Исследовательница из Google Project Zero Натали Силванович (Natalie Silvanovich) обнаружила уязвимость в сервисе iMessage, с помощью которой можно полностью вывести из строя iPhone.
«Метод -[IMBalloonPluginDataSource individualPreviewSummary] в IMCore может вызвать NSException из-за некорректно сконфигурированного сообщения, содержащего атрибут с ключом IMExtensionPayloadLocalizedDescriptionTextKey, значением которого не является NSString. Этот метод вызывает [IMBalloonPluginDataSource _summaryText], без проверки возвращающий атрибут в качестве строки. Метод затем вызывает -[IMBalloonPluginDataSource _replaceHandleWithContactNameInString:], вызывающий im_handleIdentifiers в 'NSString', который на самом деле является NSNumber, вызывающим исключение, поскольку селектора для данного класса не существует. В результате на Mac процесс soagent аварийно завершается и возобновляется снова, но на iPhone этот код находится в Springboard», – сообщила Силванович.
Springboard – iOS-приложение, отвечающее за домашний экран. Получив вышеупомянутое сообщение, Springboard начинает непрерывно завершать и возобновлять работу, из-за чего пользовательский интерфейс не отображается, а iPhone перестает реагировать на действия пользователя.
Жесткая перезагрузка не решает проблему. Силванович предложила три способа вернуть испорченный телефон к жизни, но все они предполагают либо полное удаление всех данных, либо откат к заводским настройкам.
Уязвимость была обнаружена в апреле нынешнего года и исправлена в мае с выходом iOS 12.3.