Parameter publicó el 28 de octubre de 2026 que una conversación pública de ChatGPT preparada con un gráfico y una vista previa HTML podía ejecutar JavaScript en la sesión autenticada de quien abriese su enlace. En una prueba controlada entre cuentas separadas, la firma accedió a conversaciones recientes, recuperó contenido de un chat privado y envió una parte a un servidor bajo su control. Según el análisis de Parameter, OpenAI corrigió el fallo el 26 de octubre.
Qué pudo hacer el enlace y qué interacción requería
Parameter afirmó que la prueba recuperó mensajes de una conversación privada que no se había compartido con los investigadores. La firma describió el ensayo como una prueba controlada entre cuentas separadas y no reportó explotación real.
En la reproducción más estable, el visitante abría el enlace y pulsaba una vez el botón Preview. En una variante posterior, la vista previa se abría automáticamente y bastaba con entrar en el enlace. Parameter dijo que reprodujo esa variante tres veces en una cuenta separada, incluso después de una recarga completa; la alerta apareció aproximadamente 4,5 segundos después.
The Hacker News informó de que los usuarios no tenían que instalar nada ni restablecer la cuenta tras la corrección.
Cómo funcionó la cadena entre Preview y MathLive
La vista previa de HTML se ejecutaba en un marco aislado, separado de la página principal de ChatGPT. Una gráfica de la conversación cargaba MathLive, una biblioteca que también instalaba en la página principal un receptor de mensajes relacionados con su teclado virtual. Un marco es una ventana de contenido incrustada en una página; el aislamiento limita la comunicación entre esa ventana y el sitio que la contiene.
Según Parameter, el receptor de MathLive aceptaba un mensaje que podía modificar el teclado sin comprobar quién lo enviaba, y ese mensaje admitía HTML sin procesar. El HTML insertado en la página principal creaba después otro marco sin aislamiento. Como lo creaba la propia página de ChatGPT, el navegador le asignaba la identidad de chatgpt.com, lo que permitía al código interactuar con el sitio dentro de la sesión autenticada.
La política de seguridad de contenido de ChatGPT bloqueaba el JavaScript incrustado. Parameter explicó que recurrió a una respuesta JSONP del servicio oEmbed de YouTube como vía final para ejecutar el código. YouTube fue un rodeo frente a esa política, no el origen del fallo.
De las primeras pruebas a la corrección
Parameter contó que el 13 de octubre confirmó en el código de producción la ruta que conectaba los mensajes de MathLive con la inserción de HTML. Al día siguiente reprodujo la ejecución de JavaScript. El 16 logró llevar la cadena a un enlace público con un clic en Preview y el 17 consiguió que la vista previa se abriese automáticamente.
La firma presentó el informe a OpenAI el 18 de octubre y añadió la prueba de acceso a un chat privado el día 19. Según Parameter, OpenAI reprodujo el fallo el 21 y elevó su gravedad de P2 a P1. El 22, OpenAI comunicó que una de las versiones del frontend ya estaba corregida y que la otra seguía actualizándose. Al día siguiente, cambios en la política de seguridad de contenido bloquearon parte de la cadena mientras continuaba la actualización pendiente.
El 26 de octubre, ambas versiones del frontend rechazaban los mensajes utilizados en la prueba y OpenAI dio el problema por resuelto, según Parameter. La firma informó también de una recompensa total de 5.000 dólares.