Uma equipe de pesquisa de segurança encontrou uma maneira de assumir o controle de qualquer conta ChatGPT simplesmente fazendo com que a vítima abrisse um link de conversa compartilhado, de acordo com uma divulgação técnica publicada pela Parameter Labs em 28 de outubro. A empresa informou que a OpenAI corrigiu a vulnerabilidade em 26 de outubro e classificou o relatório como P1, sua classificação de gravidade mais alta.
A descoberta é uma rara aquisição de conta de ponta a ponta contra uma plataforma de IA convencional, e ocorreu enquanto os últimos desenvolvimentos de IA continuam mostrando quanto material sensível as pessoas agora mantêm dentro de aplicativos de bate-papo. A Parameter Labs disse que o ataque não exigiu instalação de aplicativo, ferramentas de desenvolvedor e nenhuma interação além de abrir o URL ChatGPT compartilhado do invasor.
Como funcionava a cadeia de ataque
A rede abusou de dois recursos comuns do ChatGPT que pareciam inofensivos isoladamente: um gráfico interativo e a sandbox de visualização HTML. O recurso de visualização do ChatGPT executa HTML gerado em um quadro restrito em um endereço da web separado, o que deve impedir que ele toque na página chatgpt.com conectada ao seu redor.
A descoberta veio do gráfico, que carregou uma biblioteca matemática chamada MathLive. Essa biblioteca instalou um ouvinte de mensagens na página principal do ChatGPT para seu teclado na tela, mas o Parameter Labs descobriu que o ouvinte aceitava mensagens de qualquer origem sem verificar o remetente. Um tipo de mensagem aceito poderia substituir o layout do teclado virtual por HTML controlado pelo invasor, que o MathLive então inseriu na página real do ChatGPT por meio do innerHTML.
Os scripts inseridos dessa forma normalmente não são executados, então os pesquisadores agruparam sua carga em um iframe usando o atributo srcdoc. Como a página principal do ChatGPT criou esse quadro sem sandbox, o navegador tratou o código dentro dele como conteúdo genuíno do chatgpt.com com acesso à página pai.
Escapando da Política de Segurança de Conteúdo
A Política de Segurança de Conteúdo do ChatGPT ainda bloqueava scripts in-line, mas o Parameter Labs encontrou uma lacuna: a política permitia scripts do YouTube. Os pesquisadores descobriram que o endpoint oEmbed do YouTube refletia um parâmetro de retorno de chamada JSONP inválido em sua resposta de erro antes da validação, permitindo que eles acrescentassem JavaScript executável a uma resposta que o navegador carregaria alegremente como um script.
Nesse ponto, a equipe tinha JavaScript arbitrário rodando com a identidade do chatgpt.com dentro da sessão de login da vítima. A Parameter Labs foi explícita sobre o que isso significava na prática: a carga útil não se limitava a modificar a página ou exibir um alerta – ela poderia chamar diretamente as APIs autenticadas do ChatGPT como vítima. Nos testes, a carga poderia enumerar a lista de conversas da vítima, recuperar o conteúdo de conversas privadas que nunca foram compartilhadas com o invasor e enviar esses dados para um servidor externo. O navegador identificou cada ação como proveniente do próprio chatgpt.com, não dando à vítima nenhum sinal visível de que algo estava errado.
Um link foi suficiente
O que transformou um bug de pesquisa em uma arma prática foi a entrega. Os pesquisadores colocaram o gráfico e um bloco HTML previsível em uma única conversa comum, publicaram-no com o recurso de compartilhamento normal do ChatGPT e enviaram o link /share/ resultante pelas mesmas rotas que qualquer pessoa usaria: e-mail, chat, um ticket de suporte ou uma postagem social.
Na reprodução mais estável, a vítima precisava clicar uma vez no botão Visualizar do ChatGPT após abrir o link. Uma versão posterior marcou o bloco HTML como pré-visualizável, então o ChatGPT o abriu automaticamente e a única ação necessária da vítima foi visitar o URL. A equipe reproduziu esse caminho totalmente automático três vezes em uma conta separada, inclusive após uma atualização completa, com a carga disparando cerca de 4,5 segundos após o carregamento da página.
Como o gráfico e a visualização eram carregados de forma independente, a carga poderia ocasionalmente ser disparada antes que o MathLive estivesse pronto. A versão final repetiu suas mensagens por um período limitado para lidar com essa condição de corrida.
Divulgação e correção
A Parameter Labs relatou o problema à OpenAI, que enviou uma correção em 26 de outubro e classificou o relatório como P1. A divulgação chega em meio a uma série mais ampla de pesquisas sobre segurança de plataformas de IA; no início desta semana, o The Register relatou bugs em cinco ferramentas de desenvolvedor de IA, algumas ainda sem correção na publicação.
A lição generaliza além de uma biblioteca. Os aplicativos de bate-papo modernos compõem componentes de terceiros, visualizações em sandbox e canais de mensagens permissivos em uma única página autenticada, e qualquer receptor postMessage não verificado pode se tornar a ponte entre eles. Para os usuários, a orientação prática permanece inalterada em relação à segurança clássica da Web: trate os links para conversas compartilhadas de IA da mesma forma que trata qualquer outro link não solicitado, porque a plataforma não pode mais prometer que a abertura de um será inofensiva.
Por sua vez, a classificação P1 e o rápido retorno da OpenAI sugerem que a empresa trata os ataques de sessão baseados em navegador em chatgpt.com como ameaças de primeiro nível. O incidente também é um lembrete de quanto valor está concentrado nessas contas agora que os usuários armazenam documentos de trabalho, perguntas médicas e projetos privados no histórico de bate-papo – exatamente o conteúdo que o Parameter Labs provou que um invasor poderia ter extraído.
---
Fique à frente da IAReceba as últimas notícias, análises e avanços sobre IA — tudo em um só lugar.
Leia mais notícias sobre IA →