Исследователи Parameter AI обнаружили в октябре 2026 года способ выполнять JavaScript в авторизованной сессии ChatGPT другого пользователя. Для атаки использовался обычный публично опубликованный диалог: жертве достаточно было открыть ссылку, а в наиболее автоматизированном варианте не требовалось дополнительных действий. Код получал доступ к тем же внутренним веб-API, что и штатный интерфейс chatgpt.com. Исследователи подтвердили перечисление диалогов, чтение закрытого разговора, который никогда не публиковали, и передачу выбранного фрагмента на контролируемый сервер.
Цепочка возникла на стыке нескольких функций. HTML Preview исполнял потенциально опасный код в изолированном фрейме на отдельном домене и не мог напрямую читать основную страницу. Однако интерактивный график загружал MathLive, который устанавливал в основном документе обработчик межоконных сообщений. Этот обработчик принимал изменение раскладки виртуальной клавиатуры без достаточной проверки отправителя, а раскладка могла содержать HTML. В результате изолированный Preview получил возможность передать разметку привилегированному компоненту.
Вставленная разметка создавала новый документ без sandbox, унаследовавший происхождение chatgpt.com. Политика Content Security Policy блокировала встроенные сценарии, но разрешённый сторонний источник позволил обойти это ограничение. Исследователи подчёркивают, что сторонний ответ был лишь последним звеном, а корнем проблемы стали доверие к межоконным сообщениям и небезопасная передача HTML.
OpenAI получила отчёт 18 октября, воспроизвела проблему 21 октября и повысила её приоритет с P2 до P1. Исправление распространялось на две версии веб-интерфейса; 26 октября компания подтвердила, что обе отклоняют опасные сообщения, закрыла отчёт и выплатила исследователям $5000.
Parameter AI рекомендует проверять не только домен отправителя postMessage, но и конкретное разрешённое окно, не передавать сырой HTML в межоконных настройках и сохранять изоляцию всех документов с недоверенным содержимым. CSP при этом должна служить дополнительным барьером, а не оправданием небезопасного рендеринга.