Исследователь информационной безопасности Радослав Карпович сообщил о том, что применение фреймворка Sparkle Updater несет угрозу для пользователей OS X. Процедура обновления приложений, в которых используется Sparkle Updater, не является безопасной.
Компонент Sparkle Updater позволяет разработчикам существенно облегчить процесс обновления приложений. Благодаря данному фреймворку пользователям не нужно производить проверку обновления в ручном режиме. Причиной существования данной проблемы является забывчивость некоторых разработчиков, которые неправильно настраивают Sparkle Updater, вследствие чего фреймворк часто применяет HTTP, а не HTTPS.
Sparkle Updater использует сервер AppCast, функционирующий подобно RSS-протоколу. Когда разработчики выпускают обновления или анонсируют релиз новой версии приложения, то Sparkle Updater получает соответствующее уведомление. Данные передаются в виде XML-сообщений. Пользователь может осуществлять проверку обновления в ручном режиме, а может доверить это приложению, которое будет работать в автоматическом режиме.
Как выяснил Карпович, при автоматической проверке обновлений передача данных часто производится через протокол HTTP. Подобный механизм заложен в таких популярных программах, как Adium, Coda, iTerm, Facebook Origami, Pixelmator, SequelPro, Tunnelblick и VLC. По мнению исследователя, уязвимых программ может быть гораздо больше.
Используя простую атаку типа man-in-the-middle, Карпович совершил перехват запроса сервера AppCast по поводу обновления и осуществил подмену XML-сообщения на вредоносный код. Поскольку в Sparkle Updater для обработки информации в XML-файлах задействуется компонент WebView, исследователю удалось добиться от удаленного компьютера выполнения произвольного кода, полученного в XML-сообщении. Подобная атака, проведенная киберпреступником, может повлечь полную компрометацию системы.
Карпович также вынудил целевую систему выделить на выполнение процедуры обновления гораздо больше памяти, чем необходимо в действительности, чем спровоцировал квази-DoS состояние.
Разработчики Sparkle Updater в недавно выпущенной версии 0.13.1 исправили эту уязвимость. Карпович разместил в своем блоге детальную инструкцию по проверке приложения на наличие данной бреши.