Un enlace compartido de ChatGPT manipulado podría ejecutar código del atacante en la sesión iniciada de cualquier persona que lo abriera, permitiéndole leer sus conversaciones privadas, según demostraron investigadores de la firma de seguridad Parameter.
Los investigadores reportaron la falla a través del programa de recompensas por errores de OpenAI el 18 de octubre, y OpenAI la corrigió ocho días después, clasificándola como P1, su categoría de mayor gravedad.
La trampa consistía en una conversación ordinaria de ChatGPT compartida mediante su enlace público. Podía enviarse de la misma forma que cualquier chat compartido real: por correo electrónico, como mensaje de chat, como ticket de soporte o como publicación en redes sociales.
La víctima no tenía que instalar nada, unirse a un espacio de trabajo ni iniciar sesión a través del atacante. En la versión más fiable del ataque, abría el enlace y hacía clic una vez en el botón de Vista Previa de ChatGPT. En una versión posterior, Parameter configuró la página para que abriera la Vista Previa automáticamente, por lo que abrir el enlace era el único paso necesario.
Qué podía hacer el atacante
Una vez abierto el enlace, el código del atacante se ejecutaba dentro de la sesión iniciada de la víctima con el mismo acceso que el sitio real de ChatGPT. Listaba las conversaciones recientes de la víctima, abría un chat privado que nunca se había compartido con el atacante y enviaba una pequeña parte del mismo a un servidor controlado por los investigadores.
El código llamaba directamente a las API autenticadas de ChatGPT, en lugar de copiar lo que aparecía en pantalla. Debido a que se ejecutaba con el acceso web completo de la víctima, su alcance no se limitaba a esos chats. "Esencialmente, podíamos realizar cualquier acción en nombre de la cuenta de ChatGPT de la víctima", escribieron los investigadores.
El trabajo fue una prueba controlada. Parameter no reporta ningún uso real de la falla, y ejecutó su prueba de chat privado entre cuentas separadas en lugar de contra usuarios reales.
Cómo el enlace escapó de su sandbox
Según Parameter, la cadena funcionó así: ChatGPT puede convertir un bloque de HTML en un chat en una pequeña página web mediante una función llamada Vista Previa. Dado que esa página puede contener cualquier código, ChatGPT la ejecuta en un marco aislado en una dirección web separada, donde no puede leer la página principal de ChatGPT que la rodea.
Ese sandbox resistió. La vía de entrada provino de una segunda función en la misma conversación.
El chat compartido también contenía un gráfico interactivo, y dibujarlo cargaba una biblioteca matemática llamada MathLive en la página principal de ChatGPT. La carga de MathLive dejaba un listener en ejecución que aceptaba mensajes sobre su teclado en pantalla.
Un mensaje pasado entre marcos del navegador es seguro solo si el receptor verifica quién lo envió. Parameter descubrió que este listener aceptaba un mensaje de teclado de cualquier remitente, y que el mensaje podía transportar HTML sin procesar. La Vista Previa podía entonces cruzar el límite y entregar HTML malicioso a la página principal de confianza.
Ese HTML construía un nuevo marco que el navegador trataba como parte de chatgpt.com. Un script cargado desde YouTube proporcionaba luego el código que se ejecutaba dentro de él.
La política de seguridad de contenido de ChatGPT limita de dónde pueden provenir los scripts de una página. Bloqueaba el código en línea pero permitía scripts de YouTube, por lo que ese paso funcionó.
Qué corrigió OpenAI y qué deben hacer los usuarios
Parameter dijo que OpenAI reprodujo tanto la ejecución de código como la prueba de chat privado, elevó la gravedad de P2 a P1 y aplicó una corrección en dos versiones del frontend web de ChatGPT. Para el 26 de octubre, ambas versiones rechazaban los mensajes en los que se basaba el ataque.
Los investigadores atribuyeron el problema a tres decisiones de diseño que se alinearon:
- MathLive actuaba sobre un mensaje que cambiaba su configuración sin verificar qué marco lo había enviado.
- Ese mensaje podía transportar HTML sin procesar como datos de diseño de teclado.
- El HTML podía crear un marco no aislado que heredaba la identidad de chatgpt.com.
El paso de YouTube era solo el último truco, no la causa. Bloquearlo por sí solo aún dejaría que una Vista Previa no confiable pudiera insertar HTML en el sitio principal.
Los usuarios de ChatGPT no necesitan hacer nada. La corrección está del lado de OpenAI, sin nada que instalar ni restablecer.
Parameter publicó su informe el 28 de octubre, después de la corrección. OpenAI pagó un total de $5,000 por el reporte.




















Deja una respuesta