Segurança
Como reportar uma vulnerabilidade no cnpj.ia.br, o que está no escopo, como a chave de API deve ser guardada, onde os dados ficam e como funciona a supressão de contatos.
Esta é a política referenciada pelo security.txt do cnpj.ia.br. Vulnerabilidade se reporta por e-mail para seguranca@cnpj.ia.br, em português ou inglês. Respondemos confirmando o recebimento e acompanhamos até a correção. Não há programa de recompensa em dinheiro. A chave de API vai só no header, nunca em URL, código versionado ou frontend.
Como reportar uma vulnerabilidade?
Escreva para seguranca@cnpj.ia.br com o que for possível reunir:
- a URL ou o endpoint afetado (
cnpj.ia.br,api.cnpj.ia.br,mcp.cnpj.ia.brouapp.cnpj.ia.br); - os passos para reproduzir, com a requisição e a resposta observadas;
- o impacto que você entende que o problema tem;
- como prefere ser creditado, se quiser crédito público.
Não inclua dados de terceiros nem chaves de API na mensagem. Se precisou de uma chave para reproduzir, use a sua e revogue depois. Confirmamos o recebimento e avisamos quando a correção for publicada; não publicamos prazo em número porque não medimos um ainda. Pedimos que o achado não seja divulgado antes da correção ou de um acordo sobre a data.
O que está no escopo?
Elegível: falhas de autenticação ou autorização na API e no MCP, exposição de dados que o contrato não prevê (em especial qualquer CPF), injeção em qualquer superfície, contorno da supressão por pedido do titular, falhas no portal app.cnpj.ia.br e no site.
Fora do escopo: negação de serviço e testes de carga; força bruta contra o limite de requisições, que é comportamento esperado e responde 429; engenharia social contra o time ou contra clientes; relatórios de varredura automatizada sem prova de conceito; problemas em fornecedores (Google Cloud, Firebase, Cloudflare) que não dependam de configuração nossa; ausência de cabeçalho ou de flag sem impacto demonstrado.
Como cuidar da chave de API?
A chave identifica a conta inteira e autoriza todas as operações do plano. Regras que a própria API impõe e que o cliente deve seguir:
- Só no header
Authorization: Bearer. A API não aceita chave em query string nem em cookie: uma URL com chave acaba em log de proxy, histórico de navegador e sistema de monitoramento. - Nunca em código versionado. Variável de ambiente ou cofre de segredos. Uma chave que apareceu em commit, log ou captura de tela deve ser revogada na hora; não existe como “desvazar”.
- Nunca em frontend. A API nega origem de navegador nos endpoints autenticados; a chamada com chave sai do seu servidor ou do seu agente.
- Uma chave por sistema. Revogar uma não afeta as outras, e a rotação sem interrupção está descrita em Autenticação.
A equipe nunca pede a chave, por e-mail nem por outro canal. Para suporte, o que precisamos é o request_id da resposta; o roteiro está em Contato.
Onde os dados ficam?
API e banco: GCP southamerica-east1 (São Paulo); site em CDN global do Firebase; MCP em us-central1. O tráfego é sempre por HTTPS, com cabeçalhos de segurança no site e no portal. O site é estático, sem formulário e sem widget de terceiro; a única coleta no site é a de medição, descrita em Privacidade, com opção de recusa.
Como funciona a supressão de contatos?
Quem representa uma empresa pode pedir a remoção dos contatos dela. Com o pedido ativo, a API responde com meta.suppressed: true e omite telefones, e-mail, site, contatos extras e sócios; o mesmo pedido vale para o site. A API nunca retorna CPF de sócio ou de representante, em nenhum perfil. O canal do pedido e os direitos do titular estão em Privacidade; o que a resposta traz e não traz, em Privacidade e uso aceitável.
Onde está o security.txt?
Em /.well-known/security.txt, com o canal de contato, os idiomas atendidos, a data de expiração e o link para esta página. O endereço de contato é o mesmo publicado aqui; quando um mudar, o outro muda no mesmo commit.
Perguntas frequentes
Vocês pagam recompensa por vulnerabilidade?
Não há programa de recompensa em dinheiro. Quem reporta recebe confirmação, acompanhamento até a correção e crédito público se quiser. Reportes fora do escopo descrito nesta página são respondidos, mas não tratados como vulnerabilidade.
Encontrei uma chave de API do cnpj.ia.br exposta. O que faço?
Se a chave é sua, revogue no portal e crie outra; não existe como desfazer o vazamento. Se é de terceiro, escreva para o canal de segurança desta página indicando onde a chave apareceu, sem copiá-la na mensagem; avaliamos e, confirmado o vazamento, revogamos a chave e avisamos o dono da conta.
Posso chamar a API direto do navegador com a minha chave?
Não. Os endpoints autenticados negam origem de navegador, e uma chave em frontend fica visível para qualquer visitante. A chamada com chave sai do seu servidor, da sua automação ou do seu agente; o navegador fala com o seu backend.
Em que idioma posso reportar?
Português ou inglês, os dois declarados no security.txt. A resposta vem no idioma do reporte.
Os dados saem do Brasil?
A região de cada componente (API e banco, site, servidor MCP) está publicada nesta página, na seção sobre onde os dados ficam, e é a fonte única: quando mudar, a página muda. Requisições feitas pelo servidor MCP passam pela região onde ele roda.