Уязвимость в ChatGPT позволяла красть данные пользователей через YouTube
Уязвимость позволяла красть данные пользователей ChatGPT
Исследователи Parameter Labs обнаружили уязвимость в реализации ChatGPT, которая позволяла красть данные пользователей. Уязвимость затрагивала функцию предпросмотра HTML-контента. Эта функция отображает интерактивные HTML-приложения в изолированном iframe. Недоверенный код в iframe мог взаимодействовать с API OpenAI и получать доступ к частным данным.
Предпросмотр HTML-контента отображал интерактивные приложения
Функция предпросмотра HTML-контента (ранее называлась Canvas) отображает пользовательские HTML-приложения в изолированном iframe. Это сделано для предотвращения взаимодействия недоверенного кода с API OpenAI и доступа к частным данным. OpenAI использует библиотеку JavaScript MathLive для поддержки графиков. Эта библиотека включает собственную виртуальную клавиатуру. Виртуальная клавиатура может быть вызвана из родительской страницы через postMessage() из изолированного iframe. Код, получающий сообщения, использует innerHTML. Это позволяло любому коду, отправляющему сообщение, добавлять собственный HTML в родительскую страницу. Механизм предотвращения таких действий отсутствовал. Другие изолированные фреймы, включая фреймы предпросмотра HTML, могли вызывать этот метод.
Недоверенный код внедрял iframe без ограничений
Недоверенный код в iframe мог внедрять HTML. Хотя innerHTML напрямую не выполняет скрипты, он позволял внедрить новый iframe без ограничений песочницы. Политики Content Security Policy (CSP) OpenAI блокировали встроенные скрипты. Загрузка скриптов разрешалась только с нескольких доменов. Одним из таких доменов был YouTube. Конечная точка YouTube oEmbed могла использоваться для отражения JavaScript таким образом, чтобы он выполнялся. После получения выполнения JavaScript в ChatGPT стало возможным извлекать частные пользовательские данные через API и передавать их через ссылку на изображение.
Результат атаки — кража данных и действия от имени пользователя
В результате атаки пользователь мог создать ссылку на общий доступ к ChatGPT. При переходе по этой ссылке другой вошедший в систему пользователь мог передать свои личные данные или совершить действия от его имени. OpenAI устранила уязвимость и выплатила вознаграждение в размере 5000 долларов США. Исследователи считают сумму вознаграждения недостаточной для серьезности уязвимости. Уязвимость затрагивала все версии ChatGPT, использующие функцию предпросмотра HTML-контента.
Обновить ChatGPT и ожидать исправлений
OpenAI устранила уязвимость. Пользователям рекомендуется следить за обновлениями безопасности ChatGPT. Параметр Labs получила вознаграждение за обнаружение уязвимости. Уязвимость позволяла красть данные пользователей через YouTube.
Источник