Seguridad y privacidad

Cómo un enlace compartido de ChatGPT podría secuestrar cuentas de usuario mediante una fuga del sandbox

Los investigadores descubrieron una cadena de vulnerabilidades en la integración de HTML Preview y MathLive de ChatGPT que permitía a los atacantes ejecutar código en las sesiones de las víctimas a través de enlaces compartidos públicos.

Ilustración de una fuga del sandbox con código filtrándose a través de una barrera rota
Ilustración generada para este artículo

Traducido automáticamente del original en inglés.

En octubre de 2026, investigadores de seguridad descubrieron una vulnerabilidad crítica en ChatGPT que permitía el secuestro de cuentas mediante un simple enlace compartido. Al explotar un fallo en la forma en que la plataforma gestionaba los gráficos interactivos y las vistas previas de HTML, los atacantes podían inyectar JavaScript malicioso en la sesión autenticada de la víctima. OpenAI clasificó el problema con severidad P1 e implementó una solución el 26 de octubre de 2026.

Qué ocurrió

La vulnerabilidad permitía a un atacante crear una conversación maliciosa y publicarla utilizando la función estándar de compartir de ChatGPT. Cuando la víctima abría este enlace público, la carga útil se ejecutaba dentro de su sesión iniciada en chatgpt.com. Este contexto de ejecución otorgaba al atacante acceso total a la cuenta de la víctima, lo que le permitía enumerar conversaciones privadas, recuperar contenido de mensajes no compartidos y exfiltrar datos a servidores externos.

Crucialmente, el ataque no requería ninguna acción por parte de la víctima más allá de hacer clic en el enlace. No era necesario instalar aplicaciones, unirse a proyectos específicos ni abrir herramientas de desarrollo. En algunas variaciones del exploit, el código malicioso se ejecutaba automáticamente al cargar la página, mientras que otras requerían un solo clic en el botón "Preview" (Vista previa). Los investigadores confirmaron que el código inyectado podía llamar directamente a las APIs autenticadas de ChatGPT, realizando efectivamente cualquier acción que la víctima pudiera realizar.

La cadena de exploits dependía de dos funciones aparentemente inofensivas: un gráfico interactivo y la función de vista previa de HTML. El gráfico cargaba una biblioteca matemática llamada MathLive, que instalaba un oyente de mensajes en la página principal. La vista previa de HTML, que se ejecutaba en un sandbox restringido, enviaba mensajes elaborados a este oyente. Dado que el oyente carecía de comprobaciones adecuadas del origen, aceptaba instrucciones del marco de vista previa no confiable, lo que llevaba a una violación del límite del sandbox.

Cómo funciona

El núcleo del exploit implicaba evadir la política de mismo origen del navegador utilizando la API postMessage. Aunque la vista previa de HTML se ejecutaba en un dominio separado para aislarla de la interfaz principal de ChatGPT, aún podía enviar mensajes a la ventana padre. MathLive, utilizada para renderizar expresiones matemáticas, escuchaba estos mensajes para actualizar el diseño de su teclado virtual. Sin embargo, no verificaba el origen de los mensajes, lo que permitía al marco de vista previa enviar comandos arbitrarios.

El atacante enviaba un mensaje instruyendo a MathLive para actualizar su diseño de teclado con HTML personalizado. MathLive insertaba este HTML en la página principal utilizando innerHTML. Aunque las etiquetas de script insertadas de esta manera no se ejecutan inmediatamente, el atacante incluía un iframe con un atributo srcdoc. Esto creaba un nuevo documento dentro de la página principal que heredaba el origen chatgpt.com. Como este nuevo marco no estaba aislado en un sandbox, podía acceder al DOM y a las cookies de la página padre.

Para ejecutar JavaScript a pesar de la Política de Seguridad de Contenido (CSP) de ChatGPT, el atacante aprovechó el endpoint oEmbed de YouTube. La CSP permitía scripts de YouTube, y el endpoint oEmbed admitía callbacks JSONP. Mediante la elaboración de un parámetro de callback específico, el atacante engañó a YouTube para que devolviera una respuesta JavaScript que ejecutaba su código. Este último paso les otorgó ejecución de código arbitrario dentro de la sesión autenticada de la víctima.

Detalles clave

  • Tipo de vulnerabilidad: Cross-site scripting (XSS) mediante fuga del sandbox y manejo inseguro de postMessage.
  • Componente afectado: Frontend web de ChatGPT, específicamente la interacción entre HTML Preview, MathLive y la página principal.
  • Vector de ataque: Un enlace de conversación de ChatGPT compartido públicamente que contiene un gráfico malicioso y una vista previa de HTML.
  • Impacto: Secuestro total de la cuenta, incluyendo la lectura de conversaciones privadas y la ejecución de llamadas a la API como la víctima.
  • Acción requerida del usuario: Ninguna en algunos casos; de lo contrario, un solo clic en el botón "Preview" (Vista previa).
  • Resolución: OpenAI corrigió el problema el 26 de octubre de 2026, rechazando los mensajes de MathLive entre marcos y actualizando las reglas de CSP.

Por qué importa

Este incidente destaca los riesgos de las interacciones complejas de funciones en las aplicaciones web modernas. Componentes individuales como sandboxes, CSPs y oyentes de mensajes pueden ser seguros por separado, pero su combinación puede crear vulnerabilidades inesperadas. Para los desarrolladores que construyen interfaces de IA, subraya la importancia de una verificación rigurosa del origen para los oyentes de postMessage y de evitar la inserción de HTML sin procesar desde fuentes no confiables.

Para los usuarios, sirve como recordatorio de que los enlaces compartidos desde plataformas de IA pueden portar amenazas activas. A diferencia de los ataques de phishing tradicionales que dependen del engaño, este exploit utilizaba funciones legítimas de la plataforma para entregar malware. Las organizaciones deberían considerar restringir el acceso a las acciones públicas o implementar pasos adicionales de verificación para el contenido externo hasta que tales vulnerabilidades sean completamente mitigadas.

Qué puedes hacer

  • Verifica al remitente antes de abrir enlaces compartidos de ChatGPT, especialmente de fuentes desconocidas.
  • Monitorea la actividad de tu cuenta en busca de llamadas a la API inusuales o registros de acceso a conversaciones.
  • Si eres desarrollador, asegúrate de que todos los oyentes de postMessage validen event.origin y event.source.
  • Evita usar innerHTML para insertar contenido desde marcos no confiables; utiliza texto plano o HTML saneado en su lugar.
  • Implementa políticas de CSP estrictas que prohíban scripts en línea y limiten los dominios de confianza solo a servicios esenciales.
  • Mantén tu navegador y extensiones de seguridad actualizados para beneficiarte de las últimas medidas de protección.
  • #security
  • #chatgpt
  • #web-vulnerabilities
  • #xss
  • #openai

Herramientas de la Tienda de Bytechap

Seguir leyendo

Todos los artículos