Критична уязвимост в ChatGPT позволявала злонамерен споделен разговор да изпълни контролиран от атакуващия JavaScript в автентикираната сесия на друг потребител. Атаката можела да изброи личните чатове, да прочете разговори, които никога не са били споделяни с атакуващия, и да изпрати откраднатите данни към външен сървър. При финалната демонстрация е било достатъчно жертвата да отвори един специално подготвен линк.

OpenAI са отстранили проблема на 26 октомври 2026 г., според техническото разкриване на Parameter, публикувано от Mukul Goyal на 28 октомври. Компанията е класифицирала доклада като P1 и е отпуснала награда от 5000 долара. Демонстрираният достъп до акаунта е бил получен чрез активната браузърна сесия на жертвата, а не чрез открадната парола.

Експлойтът комбинирал интерактивна графика с функцията HTML Preview на ChatGPT. Обикновено Preview изпълнява код в ограничена рамка (frame) на отделен уеб адрес, което пречи да чете директно главната страница на ChatGPT. Тази граница първоначално работела според предназначението си.

Уязвимостта в ChatGPT, използвана с един линк

Графиката обаче зареждала MathLive – математическа библиотека, която добавяла слушател за съобщения към главната страница заради своята виртуална клавиатура. Чрез интерфейса postMessage на браузъра изолираният Preview можел да изпраща инструкции към този слушател. MathLive приемал промени на клавиатурата, без да проверява както трябва произхода на подателя и без да изисква одобрен прозорец източник.

Едно съобщение подавало клавиатурна подредба, съдържаща HTML, контролиран от атакуващия. Друго отварило клавиатурата и така поставяло този HTML в реалната страница на ChatGPT чрез innerHTML. Помощна функция, наречена createHTML, предавала съдържанието, без да премахва опасния код.

Това се различава от докладваната преди това уязвимост в изолираната среда на ChatGPT, която разкривала данни от Gmail и използвала споделено вътрешно хранилище. Тук изходът е минал през граница на браузъра чрез съобщения, на които се доверява привилегирован компонент на страницата.

Самото вмъкване на HTML не изпълнявало JavaScript веднага. Изследователите вмъкнали iframe със srcdoc, който съхранява HTML на вграден документ директно в атрибут. Тъй като тази нова рамка нямала ограниченията на изолирана среда, тя наследявала уеб произхода на ChatGPT и имала достъп до родителската страница.

Политиката за сигурност на съдържанието (Content Security Policy) на ChatGPT блокирала вградените скриптове, но разрешавала скриптове от YouTube. Изследователите установили, че oEmbed крайната точка на YouTube връщала като JavaScript подадена от атакуващия JSONP callback функция, дори когато съобщавала за невалидна такава. Зареждането на този отговор осигурило последната стъпка, необходима за изпълнение на код от името на chatgpt.com.

След това изследователите поставили едновременно графиката и HTML Preview в публичен разговор. По-ранна версия изисквала кликване върху Preview. Финалната версия го отваряла автоматично и била възпроизведена три пъти в отделен акаунт, като изпълнението се появявало след около 4,5 секунди.

Кражба на лични чатове и корекцията на OpenAI

Зловредният код четял данни за сесията, които вече са достъпни за фронтенда на ChatGPT, и извиквал автентикирани API за разговори. Той извлякъл личен разговор, несвързан със споделения линк, след което изпратил малка избрана стойност до сървър на изследователите чрез заявка за изображение.

За разлика от отделно докладваната уязвимост в GitHub конектора на ChatGPT, тази атака не зависела от инструкции в хранилище или от свързани инструменти. Достъпът ѝ идвал директно от JavaScript, изпълняван в доверения уебсайт.

Parameter подали доклада на 18 октомври. OpenAI възпроизвели проблема и повишили приоритета му на 21 октомври. До 26 октомври и двете засегнати версии на уеб фронтенда отхвърляли докладваните съобщения към MathLive. Случаят показва защо получателите на съобщения между рамки трябва да проверяват както произхода на подателя, така и прозореца източник, а недоверения HTML трябва да остава в изолирана среда през целия процес на визуализация.