Habr AI→ original

Auditoria de Segurança do Cursor Descobre Quatro Vulnerabilidades no Editor de Código, mas Autorização Permanece Segura

Um pesquisador analisou a arquitetura interna do Cursor, recuperou esquemas protobuf e testou se a autorização no servidor poderia ser contornada para…

Processado por IA de Habr AI; editado por Hamidun News
Auditoria de Segurança do Cursor Descobre Quatro Vulnerabilidades no Editor de Código, mas Autorização Permanece Segura
Fonte: Habr AI. Colagem: Hamidun News.
◐ Ouvir artigo

Uma auditoria de segurança do Cursor revelou um resultado raro para ferramentas de IA: o pesquisador não conseguiu contornar a autorização do lado do servidor e ganhar acesso aos modelos premium através de uma vulnerabilidade do lado do cliente, mas encontrou quatro problemas notáveis no perímetro de segurança no caminho. A revisão é interessante precisamente porque não é uma história sobre "tudo quebrou", mas sim um exame detalhado de como um editor de código com IA é estruturado—um que canaliza grandes volumes de código e requisições de desenvolvedores através de seus servidores. A investigação começou com a descompilação do cliente Electron do Cursor, construído sobre VS Code.

Em um único arquivo JavaScript minificado excedendo 1,1 milhões de linhas, o autor recuperou descrições protobuf, um mapa de API, lógica OAuth e uma lista de feature gates. Separadamente, ele demonstrou que o token JWT do usuário não contém claims sobre assinatura ou plano: os direitos de acesso aos modelos não são verificados no lado do cliente e não através do conteúdo do token, mas no servidor, com base nos dados do banco de dados. Para um produto SaaS com LLMs caros, esta é uma escolha arquitetônica chave, precisamente porque tal esquema impede um usuário "gratuito" de simplesmente falsificar parâmetros locais e desbloquear Claude 4 Opus ou outro modelo premium.

Após a engenharia reversa do API, o pesquisador passou para ataques na API. A primeira descoberta—poluição de protótipo em endpoints JSON relacionados a assinatura e promoções. Se campos como __proto__ ou constructor.

prototype forem adicionados ao corpo da requisição, o servidor retorna um erro 500 Internal Server Error em vez da rejeição esperada. Isto não concede atualizações automáticas de plano, mas mostra que a poluição da cadeia de protótipos ocorre antes das verificações de lógica de negócios e pode alterar o caminho de validação. O segundo problema—um campo oculto devRawModelSlug em AgentRunRequest.

Ele não existe no esquema do cliente, mas os servidores de produção aceitam este campo, reconhecem seu nome e respondem com um erro separado que revela que o sistema tem um mecanismo dev para especificar diretamente o modelo de backend, contornando o roteamento padrão. Atualmente este caminho está desativado, mas sua mera presença no perímetro de produção aumenta o risco de erros de configuração. Mais duas vulnerabilidades não provêm de contorno de assinatura, mas de exposição desnecessária de arquitetura interna e validação incompleta.

Um método interno responde com "Invalid internal service header", de onde você pode inferir que o endpoint existe, é protegido por autorização separada entre serviços e espera um cabeçalho especial. Para um cliente externo, tal detalhe é desnecessário: seria mais seguro responder com um 404 ou 401 universal sem dicas internas. Além disso, a auditoria revelou que alguns campos protobuf para cenários de subagente aceitam links para modelos premium sem uma verificação de plano separada.

Na prática, isto não altera o modelo de resposta real e não abre um contorno, porque o roteamento ignora estes campos de qualquer forma, mas tal lógica expande a superfície de ataque e poderia se tornar um problema após futuras mudanças de produtos. Uma parte importante da revisão—uma lista de vetores que não funcionaram. O autor testou força bruta de nomes de modelos, falsificação de claims JWT, injeção de callback OAuth, replay de webhook Stripe, confusão entre requested_model e model_details, conflitos de tipos de wire do protobuf e condições de corrida em torno de assinatura.

Nenhum contorno significativo funcionou em lugar algum. O servidor rejeita tags protobuf incorretas, não confia em dados JWT, valida assinaturas Stripe e mantém verificações de plano centralizadas. Isto torna a conclusão mais forte: problemas realmente existem, mas o modelo de segurança básico do Cursor parece maduro e reflexivo comparado a muitos serviços de IA que confiam o cliente demais.

O significado prático desta história se estende além do próprio Cursor. Para desenvolvedores de IA SaaS, este é um bom checklist: não armazene privilégios em tokens, verifique plano no servidor a cada requisição, valide protobuf estritamente e não deixe campos dev em esquemas de produção. Para usuários, é um sinal de que até IDEs avançados de IA têm uma superfície vulnerável em torno de cobrança, serviços internos e mecanismos de roteamento de modelos.

E mais importante: hoje, a segurança de um produto de IA é definida não por quantos modelos ele suporta, mas por quão disciplinado ele é em separar o cliente dos direitos de acesso reais no servidor.

ZK
Hamidun News
Notícias de AI sem ruído. Seleção editorial diária de mais de 400 fontes. Produto de Zhemal Khamidun, Head of AI na Alpina Digital.

Quer parar de ler sobre IA e começar a usar?

AI News é um feed curado de notícias de IA. A Hamidun Academy ensina você a usar IA no trabalho.

O que você acha?
Carregando comentários…