Математическая клавиатура, колбэк YouTube и одна ссылка открыли аккаунты ChatGPT
Исследователи из Parameter сделали публичный шеринг ChatGPT, который для любого открывшего его запускал JavaScript от имени chatgpt.com. OpenAI заплатила 5 000 долларов.
Для цепочки не нужна фишинговая страница. Открытие вредоносного публичного шеринга ChatGPT или нажатие кнопки Preview запускало код атакующего внутри авторизованной сессии жертвы, и тот мог прочитать приватный чат, который атакующий никогда не видел.
Комментаторы в основном спорили о цене. Два основателя сказали другое: та же фирма проводила незапрошенные тесты их собственных компаний.

Четыре разумные функции, которые складываются в захват аккаунта

По разбору Parameter, HTML Preview в ChatGPT работает в изолированном фрейме. Но библиотека математической клавиатуры MathLive, которую подгружал интерактивный график в том же разговоре, слушала сообщения на главной странице и не проверяла, кто их отправил, а Preview мог слать ей сообщения. Библиотека принимала сырой HTML как данные о разметке и вставляла его в страницу без очистки. Так появлялся фрейм без песочницы, который наследовал идентичность chatgpt.com.
Content Security Policy блокировала инлайн-скрипты, но пропускала YouTube, а колбэк oEmbed-эндпоинта YouTube возвращал код, который подсунул атакующий, и тот выполнялся в этом фрейме. Оттуда код мог перечислить последние разговоры, прочитать приватный и отправить данные на внешний сервер.

Сроки короткие. Команда отправила отчёт 18 октября, OpenAI воспроизвела уязвимость 21 октября и подняла серьёзность с P2 до P1, 26 октября исправила оба веб-фронтенда и выплатила награду в размере 5 000 долларов.
Ценник
«Всего 5000 за это, ха. Должно быть 50 тысяч просто из стыда. Если им не будет хоть немного больно, они никогда всерьёз не начнут соблюдать хорошие практики» — комментатор про размер награды
Другой комментатор предсказал, что следующий исследователь не станет сообщать и продаст находку посреднику.
Репутация самих исследователей
Самые интересные реплики касались самой Parameter.
«Эта компания без предупреждения написала нам и сообщила об уязвимости (тестовое окружение, синтетический тенант). С одной стороны, спасибо, это уже пропатчено. С другой, у нас нет программы bug bounty, и такое нам не рады» — комментатор, в компанию которого фирма написала
Второй комментатор, по словам которого Parameter провела незапрошенный пентест его работодателя, назвал команду посмешищем и отметил, что на главной странице фирмы первым делом написано «Backed by YC».
Жалоба на читаемость, в которой есть суть
Один читатель написал, что не понимает, как исследователи вообще управляли содержимым шеринга. Единственный ввод, который контролирует автор шеринга, — это текст промпта, а раздел про JSONP объясняет механизм, но не показывает, как его обошли. Статья остаётся единственным публичным описанием цепочки, так что этот пробел пока открыт.
Получайте такие разборы каждый день
Главные истории Hacker News — на email, в Telegram или RSS.
Jepsen нашёл, что WHERE 4 = 5 возвращает строку в ParticleDB, базе, которая продавалась как «Full ACID»
На главной ParticleDB обещала 159 тысяч TPS и доказательство на TLA+. Jepsen насчитал 96 проблем, а потом в треде появился инженер самого вендора.