Falha nos HTML previews do ChatGPT permitia tomar contas com um link compartilhado: como funcionava a cadeia descoberta pela Parameter Labs

Fala aí, beleza? A Parameter Labs publicou o relato Do the Math: How We Took Over ChatGPT Accounts, e o resumo assusta: um link de compartilhamento do ChatGPT podia vazar os dados privados de quem abrisse ou agir em nome dessa pessoa, bastando ela estar logada
Segundo a Parameter Labs, a OpenAI corrigiu a falha em 26 de outubro.
O que são os HTML previews do ChatGPT e por que o sandbox importa
HTML preview é o recurso que mostra o resultado de um código direto dentro do ChatGPT
Segundo a documentação de ajuda da OpenAI, nos code blocks compatíveis você seleciona Preview e vê a coisa rodando ali mesmo
As prévias podem incluir páginas HTML, componentes React, imagens SVG, diagramas Mermaid e gráficos Vega ou Vega-Lite
Na leitura do Simon Willison, essa é a versão atual do padrão de artifacts que a OpenAI antes chamava de Canvas, com o HTML exibido num iframe com sandbox
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 48min
E por que o sandbox importa tanto?
Porque esse HTML é código não confiável, muitas vezes gerado por IA ou colado por qualquer um
O isolamento existe justamente pra que esse código não encoste nas APIs do ChatGPT nem nos dados privados do usuário
Como funcionava a cadeia de exploração, passo a passo
A cadeia é longa, e nenhum elo sozinho resolvia o problema do atacante
O truque foi encadear vários detalhes pequenos até sair do sandbox, se liga:
- O ChatGPT usava a biblioteca JavaScript MathLive no suporte a gráficos, e o teclado virtual da MathLive podia ser acionado na página principal via
postMessage()a partir de um iframe com sandbox - O controlador de nível superior da MathLive usava a política de origem
nonee aceitava mensagens de qualquer endereço; a mensagemupdate-settingtrocava o layout do teclado por HTML, e esse HTML era atribuído ainnerHTMLna página real do ChatGPT sem nenhuma sanitização - Scripts inseridos via
innerHTMLnão rodam, então o ataque injetou um iframe comsrcdoc, que a MathLive colocou sem atributo sandbox; como foi criado pela própria página principal, esse frame herdava a origem https://chatgpt.com - A CSP da OpenAI bloqueava scripts inline e só aceitava scripts de alguns domínios, e um deles era o YouTube; o endpoint oEmbed do YouTube aceitava um parâmetro
callbackno estilo JSONP e devolvia esse callback dentro da resposta JavaScript antes de validar o restante - Com JavaScript rodando dentro do ChatGPT, o ataque buscava dados privados do usuário pelas APIs e exfiltrava tudo por meio de uma referência de imagem
- Resultado final: uma URL de compartilhamento do ChatGPT que, aberta por outro usuário logado, podia vazar os dados dele ou agir em nome dele

VPS Hostinger para seu sistema
10% OFF extraVPS com SSD NVMe e backups semanais. O cupom MATHEUSHORADECODAR é aplicado automaticamente pelo link.
Ver planos com 10% OFF →Que JSONP é esse?
É um padrão antigo em que o servidor devolve um script chamando a função que você passou no parâmetro de callback
Se o servidor não filtra direito esse nome, ele acaba devolvendo o JavaScript que o atacante quiser, e a CSP enxerga aquilo como script vindo de um domínio confiável…
Os detalhes completos da exploração estão no post da Parameter Labs, que é a referência técnica do caso
Quando a falha foi corrigida
A Parameter Labs relata que enviou o caso à OpenAI em 18 de outubro de 2026 e que a correção foi concluída em 26 de outubro.
O que conferir se seu aplicativo usa MathLive
Se o seu aplicativo usa a biblioteca, confira as versões publicadas pela MathLive e verifique como o seu código trata mensagens enviadas por iframes. A cadeia descrita pela Parameter mostra por que o receptor precisa verificar a origem e controlar quais dados podem chegar ao DOM.

Crie sistemas com IA para vender
Prompts, modelos e checklists para criar e publicar seu sistema com IA e preparar a oferta para o primeiro cliente.
Quero o e-book gratuito Receba o livro e os bônus no seu e-mail.Lições para quem renderiza HTML gerado por IA em sandbox
Se você está montando um app de artifacts, preview de código ou qualquer coisa que renderiza HTML gerado por IA, essa cadeia é um checklist pronto do que não fazer
Cada lição abaixo quebraria um elo diferente do ataque:
- Valide a origem em todo listener de postMessage: confira
event.origineevent.sourceantes de fazer qualquer coisa com a mensagem, porque um iframe com sandbox continua podendo enviar mensagens pra página principal (isso quebraria o passo 2) - Não use innerHTML com dados de outros frames: não precisa executar script direto pra escapar do isolamento, injetar um iframe sem sandbox já basta (isso quebraria o passo 3)
- Revise cada domínio liberado na CSP: procure endpoints que reflitam conteúdo, como JSONP ou callbacks em oEmbed, porque um único domínio confiável pode virar ponte pra rodar JavaScript (isso quebraria o passo 4)
A própria Parameter resume essas lições assim: CSP é defesa em profundidade, mas não torna seguro um caminho de renderização que já é inseguro por outro lado
Tem uma quarta lição escondida aí: dependência de terceiro também é superfície de ataque
Ninguém olha pra uma biblioteca de matemática pensando em tomada de conta, né?
Pois foi exatamente por ela que a porta abriu
Próximo passo: auditar o seu próprio sandbox
Abre o código do seu app de preview e faz duas listas: todos os listeners de postMessage e todos os domínios liberados na CSP
Passa cada item pelos três padrões de falha e anota o que não tem validação de origem, o que usa innerHTML com dado externo e qual domínio pode refletir conteúdo
Se a MathLive estiver no projeto, confira a versão e atualiza se precisar
E pra entender cada detalhe da cadeia, vale ler o post completo da Parameter Labs com calma
Até o próximo post!
Quer aprender mais sobre inteligência artificial e programação na prática? Conheça o canal Hora de Codar no YouTube e acompanhe os próximos vídeos.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 30min
Blog | Mais populares
O que significa “ChatGPT network error” e como resolver
Network error indica falha de comunicação, mas não identifica sozinho a causa. Confira o status do ChatGPT, teste uma nova conversa e uma janela sem […]
ChatGPT: o que é, como usar, dicas e como acessar login
ChatGPT é uma ferramenta de processamento de linguagem natural (NLP) baseada na arquitetura GPT-3.5, desenvolvida pela OpenAI. Sua criação representa um marco significativo no campo […]
Como acessar o ChatGPT? Guia de login chat OpenAI
Como acessar o ChatGPT? O ChatGPT foi lançado pela OpenAI, empresa de pesquisa em inteligência artificial, em 30 de novembro de 2022 (em 2020 o […]
