Falha no ChatGPT permitia sequestrar contas via HTML previews

Falha no ChatGPT permitia sequestrar contas via HTML previews

Em 31 de outubro de 2026, Simon Willison publicou em seu blog um alerta sobre uma pesquisa da Parameter Labs que descreve como contas do ChatGPT podiam ser tomadas a partir de um link de compartilhamento. O ponto de entrada estava nos HTML previews, recurso que exibe aplicações HTML interativas dentro de um iframe isolado e que representa a revisão mais recente do que a OpenAI já chamou de Canvas.

De acordo com o relato, a cadeia de exploração permitia que um usuário autenticado tivesse dados privados exfiltrados ou ações executadas em seu nome simplesmente ao abrir o endereço.

O que o sandbox deveria proteger

O recurso existe para que o modelo possa produzir pequenas aplicações, gráficos e experimentos visuais sem que o código gerado ganhe acesso ao restante da sessão. A regra central é que HTML de terceiros permaneça confinado: nada de chamar APIs da OpenAI, nada de ler informações da conta.

A Parameter Labs mostrou que essa fronteira podia ser atravessada não por um erro isolado, mas por uma sequência de decisões de implementação que, combinadas, abriam caminho para execução de JavaScript no contexto principal do ChatGPT.

A cadeia de ataque, etapa por etapa

O primeiro elo envolvia a MathLive, biblioteca JavaScript usada no suporte a gráficos. Ela inclui um teclado virtual que pode ser acionado na página pai por meio de postMessage enviado de dentro do iframe.

O código que recebe essa mensagem recorria a innerHTML, o que significava que qualquer origem capaz de enviar a mensagem podia inserir HTML no documento principal. Não havia mecanismo impedindo que outros frames isolados, incluindo os de HTML preview, chamassem esse método.

Como innerHTML não executa elementos de script diretamente, o passo seguinte consistia em usar a injeção para criar um novo iframe sem as restrições de sandbox. A partir daí, a cadeia precisava contornar a Content Security Policy.

As regras da OpenAI bloqueavam scripts inline e liberavam apenas alguns domínios; um deles era o YouTube. O endpoint oEmbed do YouTube podia ser usado para refletir JavaScript de volta ao navegador de forma executável.

Com execução de JavaScript garantida no contexto do ChatGPT, o restante era simples. O código malicioso conseguia consultar APIs e buscar dados privados do usuário, enviando-os para fora por meio de uma referência de imagem.

O resultado prático era um endereço de compartilhamento do ChatGPT que, aberto por outra pessoa conectada à conta, podia desviar informações ou realizar operações em nome dela.

Correção e recompensa

A OpenAI corrigiu a falha e pagou uma recompensa de US$ 5 mil. Para Willison, o valor foi um pouco baixo diante da gravidade do problema, que envolvia execução de código no domínio principal e alcance sobre dados de qualquer usuário que clicasse no link.

A avaliação do pesquisador reforça o debate sobre como programas de bug bounty calibram prêmios para falhas de alto impacto em produtos com base de usuários enorme.

Há também uma lição sobre a natureza dos links compartilhados. Um endereço que parece inofensivo, criado dentro de uma interface confiável, pode se tornar o vetor de uma cadeia complexa.

Quando o produto permite que conteúdo gerado por terceiros seja exibido a outros usuários, o perímetro de segurança deixa de ser apenas a conta individual e passa a incluir cada compartilhamento.

O que fica para quem constrói com IA

A sequência descrita pela Parameter Labs é um lembrete de que isolamento depende de detalhes. Receber mensagens de frames exige validação de origem e de tipo.

Substituir innerHTML por APIs de manipulação de DOM mais seguras reduz a superfície. Iframes aninhados precisam herdar restrições, e políticas de segurança de conteúdo baseadas em allowlist devem considerar como serviços legítimos podem ser usados para refletir conteúdo executável.

Para equipes que constroem agentes e interfaces generativas, o caso mostra que a confiança no sandbox não pode ser presumida. Testar cenários de postMessage, revisar bibliotecas de terceiros e tratar links compartilhados como entrada não confiável são medidas práticas.

A pesquisa foi divulgada em 31 de outubro de 2026, mesma data da publicação do blog de Willison, e o material não informa se a falha chegou a ser explorada antes da correção.

Fontes e links

Matéria publicada originalmente em Simon Willison

Últimas Notícias

Ele montou um Tamagotchi de IA por US$ 50 antes da Meta
Apple não quer “lançar IA por lançar IA”, diz novo CEO John Ternus
datasette-llm 0.1a9 herda modelo padrão do LLM e encurta setup de agentes
Falha no ChatGPT permitia sequestrar contas via HTML previews