Falha crítica na biblioteca Protobuf permite execução de código JavaScript
20 de Abril de 2026

Foi publicado um proof of concept (prova de conceito) para explorar uma falha crítica de execução remota de código (RCE) no protobuf.js, uma implementação amplamente utilizada do Protocol Buffers em JavaScript.

A ferramenta é muito popular no registro do npm, com média de quase 50 milhões de downloads por semana.

Ela é usada na comunicação entre serviços, em aplicações em tempo real e no armazenamento eficiente de dados estruturados em bancos de dados e ambientes de nuvem.

Em um relatório divulgado na sexta-feira, a empresa de segurança de aplicações Endor Labs informou que a vulnerabilidade de execução remota de código no protobuf.js é causada pela geração dinâmica de código sem validação adequada.

A falha ainda não recebeu um identificador CVE oficial e, por enquanto, é acompanhada sob o código GHSA-xq3m-2v4x-88gg, atribuído pelo GitHub.

Segundo a Endor Labs, a biblioteca cria funções JavaScript a partir de esquemas protobuf ao concatenar strings e executá-las por meio do construtor Function(), mas não valida identificadores derivados do esquema, como nomes de mensagens.

Isso permite que um atacante forneça um esquema malicioso capaz de injetar código arbitrário na função gerada, que então é executada quando a aplicação processa uma mensagem baseada nesse esquema.

Na prática, isso abre caminho para execução remota de código em servidores ou aplicações que carreguem esquemas influenciados pelo atacante, permitindo acesso a variáveis de ambiente, credenciais, bancos de dados e sistemas internos, além de possibilitar movimentação lateral dentro da infraestrutura.

A falha também pode afetar máquinas de desenvolvedores, caso elas carreguem e decodifiquem localmente esquemas não confiáveis.

O problema impacta as versões 8.0.0, 7.5.4 e anteriores do protobuf.js.

A Endor Labs recomenda a atualização para as versões 8.0.1 e 7.5.5, que corrigem a vulnerabilidade.

O patch realiza a sanitização dos nomes de tipos, removendo caracteres não alfanuméricos e impedindo que o atacante consiga encerrar a função sintética.

Ainda assim, a Endor Labs observa que uma correção mais duradoura seria evitar completamente o uso do Function() com identificadores que possam ser controlados por um atacante.

A empresa alerta que a exploração é simples e que a prova de conceito mínima incluída no comunicado de segurança reflete essa facilidade.

Até o momento, porém, não há registro de exploração ativa em ambiente real.

A vulnerabilidade foi reportada pelo pesquisador da Endor Labs e caçador de bug bounty Cristian Staicu em 2 de março, e os mantenedores do protobuf.js publicaram um patch no GitHub em 11 de março.

As correções nos pacotes do npm foram disponibilizadas em 4 de abril para a linha 8.x e em 15 de abril para a linha 7.x.

Além de atualizar para versões corrigidas, a Endor Labs recomenda que administradores auditem dependências transitivas, tratem o carregamento de esquemas como entrada não confiável e prefiram esquemas pré-compilados ou estáticos em produção.

Publicidade

Anuncie no CaveiraTech e coloque sua marca na frente de milhares de profissionais de cybersecurity

Nossa audiência é formada por analistas, pentesters, decisores e entusiastas que consomem nossas notícias todo dia pelo Site, Newsletter e Instagram. Fale com quem realmente importa para o seu negócio. Anuncie aqui. Saiba mais...