Уязвимость ChatGPT открывала доступ к чужим перепискам при переходе по ссылке

Изображение: OpenAI
Ошибка в проверке сообщений внутри ChatGPT позволяла похищать чужие переписки при открытии ссылки на специально подготовленный публичный чат. Как сообщила исследовательская команда Parameter Labs, OpenAI исправила уязвимость 26 октября и присвоила отчёту класс P1.
Для атаки пользователь должен был открыть ссылку, будучи авторизованным в ChatGPT. В автоматическом варианте этого было достаточно. Более стабильный вариант требовал ещё одного действия — нажатия кнопки предпросмотра. Устанавливать приложения или вставлять код не требовалось.
Проблема была в библиотеке MathLive, которую ChatGPT загружал для интерактивных графиков. Она не проверяла отправителя сообщений и вставляла переданный HTML-код в основную страницу. Отправить такой код можно было из изолированного окна предпросмотра HTML.
Это позволяло создать на основной странице фрейм без ограничений изоляции. Политика безопасности ChatGPT блокировала встроенные скрипты, но разрешала загружать их с YouTube. Один из сервисов YouTube возвращал JavaScript-код из параметра запроса. С его помощью исследователи обошли защиту и запустили код в сессии пользователя.
В ходе проверки код получил список переписок через API ChatGPT и прочитал закрытый чат, которым пользователь никогда не делился с исследователями. Небольшую часть ответа API отправили на подконтрольный команде сервер. По оценке исследователей, возможности атаки не ограничивались чтением чатов: код мог выполнять и другие действия, доступные через API веб-приложения от имени пользователя.
OpenAI подтвердила выполнение JavaScript и чтение закрытой переписки. После исправления обе версии веб-интерфейса ChatGPT отклоняют сообщения между фреймами, которые использовались в атаке.



