Pesquisadores de cibersegurança identificaram seis vulnerabilidades no protobuf.js, uma implementação em JavaScript e TypeScript dos Protocol Buffers (Protobuf), que, se exploradas com sucesso, podem resultar em ataques de execução remota de código (RCE) e negação de serviço (DoS).
"Em ambientes afetados, um único esquema protobuf malicioso, descritor ou carga útil manipulada pode ser suficiente para causar travamentos, corrupção em tempo de execução ou até mesmo execução de código", afirmou Assaf Morag, pesquisador de segurança da Cyera. As vulnerabilidades foram batizadas de Proto6.
Protobuf é um mecanismo gratuito e de código aberto, independente de linguagem, para serialização de dados estruturados. Foi originalmente desenvolvido e utilizado internamente pelo Google antes de ser disponibilizado publicamente em 2008.
As vulnerabilidades identificadas afetam aplicações Node.js que utilizam o protobuf.js, bibliotecas de cliente do Google Cloud, frameworks de mensagens como Baileys e pipelines de CI/CD (Integração Contínua/Entrega Contínua). Segundo a Cyera, qualquer serviço Node.js que deserializa dados Protobuf ou gera código a partir de esquemas com o protobuf.js também provavelmente está impactado.
Detalhes das falhas
Uma breve descrição de cada uma das vulnerabilidades:
- CVE-2026-44289 (pontuação CVSS — Sistema Comum de Pontuação de Vulnerabilidades: 7,5): DoS por recursão ilimitada no protobuf
- CVE-2026-44290 (pontuação CVSS: 7,5): DoS em todo o processo ao carregar esquemas com caminhos de opções inseguras
- CVE-2026-44291 (pontuação CVSS: 8,1): Gadget de geração de código após poluição de protótipo
- CVE-2026-44292 (pontuação CVSS: 5,3): Injeção de protótipo em construtores de mensagens gerados
- CVE-2026-44294 (pontuação CVSS: 5,3): DoS a partir de nomes de campos manipulados em código gerado
- CVE-2026-44295 (pontuação CVSS: 8,7): Injeção de código na saída estática do pbjs a partir de nomes de esquemas manipulados
A Cyera afirmou que todas as vulnerabilidades se originam do tratamento, pela biblioteca, de esquemas e metadados como confiáveis por padrão. Essa falha de validação pode influenciar o comportamento da aplicação e levar à execução de código.
"Embora a exploração dessas vulnerabilidades geralmente exija condições específicas, essas condições são cada vez mais comuns em ecossistemas de dados e IA (Inteligência Artificial) que trocam rotineiramente dados, esquemas e arquivos de configuração entre serviços, repositórios, plataformas de nuvem e integrações de terceiros", observou Morag.
Em um cenário potencial de ataque, um agente mal-intencionado poderia introduzir um esquema protobuf malicioso para envenenar fluxos de trabalho de CI/CD, vazando segredos de build no processo (CVE-2026-44295), ou derrubar serviços Node.js como bots do WhatsApp construídos com Baileys — uma biblioteca TypeScript de automação da API do WhatsApp Web — por meio de uma mensagem especialmente manipulada (CVE-2026-44292).
A mais grave do lote é a CVE-2026-44291, que resulta em execução de código quando uma aplicação Node.js aceita entrada controlada pelo invasor.
"Essa entrada chega a um gadget de poluição de protótipo", explicou o pesquisador de segurança Vladimir Tokarev. "Mais tarde, o mesmo processo utiliza o protobuf.js para codificar ou decodificar uma mensagem. Como o protobuf.js resolve nomes de tipos por meio de buscas simples de propriedades, um Object.prototype poluído pode fazer com que uma string controlada pelo invasor pareça um primitivo protobuf válido."
"O protobuf.js então insere essa string em uma função gerada de codificação ou decodificação e a compila com Function(). O invasor obtém execução arbitrária de JavaScript dentro do processo Node.js."
Versões afetadas e correções
As seguintes versões da ferramenta estão vulneráveis:
- protobuf.js: versões <= 7.5.5 e >= 8.0.0 <= 8.0.1
- protobufjs-cli: versões <= 1.2.0 e >= 2.0.0 <= 2.0.1
As correções para as falhas estão disponíveis nas versões protobufjs 7.5.6 e 8.0.2, e protobufjs-cli 1.2.1 e 2.0.2. Recomenda-se que os usuários apliquem as atualizações mais recentes para se proteger contra possíveis ameaças.
"Como o protobuf.js é amplamente utilizado em bancos de dados, armazenamentos de vetores, pipelines de inferência, sistemas de orquestração, ferramentas de CI/CD e SDKs (Kits de Desenvolvimento de Software) de nuvem, a exploração bem-sucedida pode impactar cargas de trabalho sensíveis de empresas e de IA em larga escala", afirmou a Cyera.
"O software moderno trata cada vez mais esquemas, metadados e arquivos de configuração como entradas confiáveis que conduzem automação, orquestração e geração de código. Quando essas premissas de confiança se rompem, dados podem se tornar comportamento. Essa mudança cria novas superfícies de ataque que as equipes de segurança devem aprender a identificar e gerenciar."