Levantamento da Buchodi's Threat Intel mostra como o cookie __obi, classificado como 'analytics' pela OpenAI, sai do ChatGPT e volta de sites parceiros carregando dados de navegação e compra do usuário.

Um levantamento técnico publicado pela newsletter Buchodi's Threat Intel descreve como a OpenAI opera um mecanismo de rastreamento entre sites que liga a navegação do usuário em páginas de terceiros à sua conta no ChatGPT. O pesquisador Jamie Larson reproduziu o fluxo completo em um celular Android↳Android46 conteúdosAndroid push notifications com Quasar Framework, Firebase e integração com WordPressDev (Back & Front) · mai 2019O X do Xamarin Forms – O guia das funcionalidades nativas - Parte 02: AndroidDev (Back & Front) · abr 2019Modularização de AndroidDev (Back & Front) · ago 2019Ver tudo em Dev (Back & Front) →, validou com dois métodos independentes de captura de tráfego e cruzou os dados com meses de tráfego observado cobrindo 936 pixels de anunciantes distintos em 1.029 domínios. O relatório completo está no Buchodi's Threat Intel.
O nome do mecanismo é __obi, um cookie escopado a .openai.com que nasce dentro do próprio ChatGPT e é enviado de volta para a OpenAI quando o usuário visita sites de anunciantes que rodam o pixel de mensuração da empresa, o mesmo modelo usado por Meta e Google há anos. A diferença, segundo o pesquisador, é rodar essa engenharia em cima de um produto de chat que recebe informação muito mais sensível do que uma rede social.
Como o token nasce dentro do ChatGPT
O processo começa no próprio chatgpt.com. O cliente gera 16 bytes aleatórios e chama POST /backend-api/bazaar/obi/sync-token (ou a rota /backend-anon/ quando o usuário está deslogado). O backend devolve um JWT assinado em RS256:
{
"iss": "chatgpt-wadi",
"aud": "bzr.openai.com",
"purpose": "obi_sync",
"operation": "set",
"consent_decision": "analytics_allowed",
"consent_policy_version": "user_granular_consent_v1",
"sub": "«subject de 64 hex, a conta»",
"obi": "«identificador de 22 caracteres»",
"exp": "«iat + 60s»"
}bzr é o nome interno da plataforma de anúncios da OpenAI ("bazaar"); wadi é o serviço que emite o token. O campo sub é a conta do usuário, obi é o identificador de rastreamento, e o token expira em 60 segundos, o suficiente para amarrar os dois valores e enviá-los ao domínio do coletor. O cliente faz então um POST cross-site para bzr.openai.com/v1/obi/sync com esse token, e a resposta grava o cookie:
Set-Cookie: __obi=«valor»; Domain=.openai.com; HttpOnly;
Max-Age=31536000; Path=/; SameSite=none; SecureA configuração SameSite=none com Secure é exatamente o que um cookie precisa para ser enviado em requisições de terceiros. É a única forma de garantir que ele volte quando o navegador carrega um script em outro domínio. Segundo o levantamento, __obi é o único identificador da OpenAI configurado dessa forma: todos os outros cookies da empresa (oai-did, oaicom-stable-id, cookies de sessão) foram bloqueados nas mesmas requisições, por SameSite=Lax ou por incompatibilidade de domínio.
O que volta dos sites parceiros
Qualquer empresa que compra anúncios no ChatGPT instala em seu próprio site um pequeno trecho de código da OpenAI, o oaiq.min.js, hospedado em bzrcdn.openai.com, seguindo o mesmo padrão dos pixels de Meta e Google. Ao carregar essa tag, o navegador já anexa o cookie __obi à própria requisição <script src> que baixa o SDK, antes de qualquer lógica de consentimento rodar. Ou seja: mesmo o caminho do SDK desenhado para não enviar credenciais falha, porque o navegador expõe o identificador no simples carregamento do script.
O relatório documenta três classes de requisição que saem da página do anunciante para a OpenAI e testou se cada uma carregava o cookie:
| Requisição | Carrega __obi? |
|---|---|
GET bzrcdn.openai.com/sdk/oaiq.min.js | sim |
POST bzr.openai.com/v1/sdk/events (com obref) | sim |
POST bzr.openai.com/v1/sdk/events (corpo sem credenciais) | sim |
GET bzrcdn.openai.com/pixel-config/… (controle) | não |
Além do identificador, o SDK também coleta dados de identidade da própria página do anunciante, separados em quatro categorias que a OpenAI rotula internamente: in (o que o anunciante passa deliberadamente), fm, ht e js (o que o SDK raspa de formulários, texto renderizado e do barramento do gerenciador de tags). No tráfego observado, dado raspado superou dado fornecido deliberadamente por 685 eventos contra 255.
A maior fonte de e-mail vem do próprio Google Tag Manager: o SDK sobrescreve window.dataLayer.push, também lê adobeDataLayer e localiza camadas de GTM renomeadas analisando o parâmetro l= da tag gtm.js. E-mail, telefone e nome são convertidos em hash SHA-256 antes do envio, mas país, região, cidade e CEP saem em texto puro. CEP foi o campo mais coletado: 100 eventos em 28 sites diferentes. URLs são reduzidas a origem mais caminho (sem query string), mas o caminho sozinho já foi suficiente para revelar, nos dados observados, uma condição médica, um funil de renegociação de dívida e um formulário de captação para processo judicial.
Classificado como "analytics", não "marketing"
A política de cookies da OpenAI lista __obi na categoria Analytics, com validade de um ano, em chatgpt.com e openai.com. É a única entrada nessa seção, descrita como algo que ajuda a empresa a entender "como seus serviços são usados". Só que a OpenAI opera consentimento de analytics e de marketing como duas escolhas separadas (oai_consent_analytics e oai_consent_marketing), e todos os 932 tokens decodificados no estudo carregavam consent_decision: analytics_allowed. Na prática, um usuário que aceita analytics e recusa marketing recebe o mesmo cookie usado para atribuição publicitária entre sites.
O pesquisador enviou o mecanismo e duas perguntas para press@openai.com e privacy@openai.com em 14 de setembro: por que __obi é classificado como analytics, e se alguém que aceita analytics e recusa marketing ainda recebe o cookie. A resposta veio do suporte da OpenAI, confirmando o recebimento e informando que as observações seriam repassadas internamente, sem responder nenhuma das duas perguntas.
Onde o mecanismo funciona (e onde não funciona)
O comportamento foi observado no Chrome para Android. O Intelligent Tracking Prevention do Safari bloqueia todo cookie de terceiro, e o Chrome no iOS roda sobre o motor WebKit, então o mecanismo simplesmente não opera em nenhum navegador iOS. Desktop Chrome não foi testado. Mesmo no ambiente onde funciona, a sincronização não é constante: cerca de uma em cada cinco sessões do ChatGPT produziu um token, e o cliente web mobile às vezes exibe anúncios sem sincronizar cookie nenhum.
Outro ponto relevante para quem lida com privacidade: o rastreamento funciona mesmo com o usuário deslogado. Dos 932 tokens decodificados, 736 carregavam subject_type: account_user e 196 carregavam anonymous. O identificador anônimo é tão estável quanto o de conta, persistindo por pelo menos 27 dias no mesmo aparelho. Em um teste, um único valor de __obi foi enviado à OpenAI a partir de 12 sites comerciais sob 13 pixels distintos, incluindo Chewy, Wayfair, ThriftBooks, Eventbrite, HelloFresh, Coursera e SeatGeek, todos aceitos com resposta HTTP 202.
O que isso muda para quem constrói e instrumenta sites
Para times de engenharia e produto no Brasil que já lidam com LGPD↳LGPD14 conteúdosComo utilizar a LGPD com o objetivo de conformidade e inovação?Gestão Dev & TI · out 2021LGPD coloca pressão inédita nos responsáveis pela tecnologia das empresasData · ago 2021Proteção de dados: LGPD é sancionada e começa a valerData · set 2020Ver tudo em Gestão Dev & TI →, o caso é um lembrete concreto de dois problemas técnicos reais. O primeiro é a exposição do dataLayer: se o time de marketing plugou o SDK de anúncios do ChatGPT (a OpenAI já testa Sponsored Agents e lançou o ChatGPT Ads Manager, como o iMasters mostrou em cobertura recente) no mesmo dataLayer usado por GTM, qualquer campo colocado ali, inclusive e-mail e telefone digitados em formulários, pode ser raspado por scripts de terceiros sem que o time de dev saiba. Vale auditar quais scripts leem window.dataLayer e adobeDataLayer no seu stack, e não assumir que "hash antes de enviar" resolve o problema de dado em texto claro como CEP e cidade.
O segundo é de governança de consentimento: classificar um cookie de rastreamento cross-site como "analytics" em vez de "marketing" é uma escolha que afeta diretamente times que precisam justificar bases legais de tratamento de dado sob a LGPD. Se um fornecedor terceirizado (no caso, a própria OpenAI, via pixel instalado no site do cliente) categoriza incorretamente a finalidade do cookie, quem responde pelo tratamento de dados no ar é quem instalou o script, não quem o forneceu.
O relatório da Buchodi's Threat Intel deixa claro que o anunciante que instala o pixel não tem visibilidade sobre isso: __obi pertence a um domínio que o script do anunciante não consegue ler, então quem coloca a tag no ar não tem como saber que está resolvendo visitantes para uma identidade de conta do ChatGPT do outro lado. A OpenAI não respondeu às perguntas técnicas enviadas pelo pesquisador até a publicação do estudo, e o caso permanece em aberto.
Fonte: Hacker News
Este artigo foi escrito por Redação iMasters. Conteúdo produzido por agente de IA da redação iMasters, sob revisão editorial humana. Saiba como produzimos no expediente.
Step 5 Preview: modelo MoE da StepFun com 1M de tokens chega ao OpenRouter
A StepFun lançou o Step 5 Preview em 8 de outubro de 2026, um modelo de Mixture-of-Experts com janela de 1 milhão de tokens já disponível no OpenRouter. O contexto gigante custa pouco, mas não resolve sozinho o problema de qualidade em tarefas longas.












