Proto6: Seis Vulnerabilidades Críticas Descobertas em Protobuf.js, Ameaçando Dados e Sistemas de IA
Pesquisadores de cibersegurança identificaram seis vulnerabilidades críticas, coletivamente chamadas de **Proto6**, em **protobuf.js**, uma popular implementação em JavaScript e TypeScript de **Protocol Buffers**. Essas falhas podem permitir ataques de execução remota de código (RCE) e negação de serviço (DoS), impactando uma vasta gama de aplicações Node.js, bibliotecas cliente do Google Cloud e até ecossistemas de IA.
Pesquisadores de cibersegurança da **Cyera** desvendaram meia dúzia de vulnerabilidades no **protobuf.js**, a implementação amplamente utilizada em JavaScript e TypeScript de **Protocol Buffers** (**Protobuf**). A exploração bem-sucedida dessas falhas, codinomeadas coletivamente **Proto6**, pode levar a consequências graves, incluindo execução remota de código (RCE) e ataques de negação de serviço (DoS).
**Assaf Morag**, um pesquisador de segurança na **Cyera**, destacou o impacto potencial: “Em ambientes afetados, um único schema protobuf malicioso, descritor ou payload elaborado pode ser suficiente para desencadear falhas, corrupção em tempo de execução ou até mesmo execução de código.”
**Protobuf** é um mecanismo open-source e agnóstico de linguagem para serializar dados estruturados, inicialmente desenvolvido e utilizado internamente pelo **Google** antes de seu lançamento público em 2008.
### Impacto Generalizado em Ambientes Node.js e Cloud
As vulnerabilidades identificadas afetam principalmente aplicações **Node.js** que utilizam **protobuf.js**, juntamente com bibliotecas cliente do **Google Cloud**, frameworks de mensagens como **Baileys** e pipelines de CI/CD. A **Cyera** alerta que qualquer serviço **Node.js** que desserializa dados **Protobuf** ou gera código a partir de schemas com **protobuf.js** está provavelmente em risco.
### As Vulnerabilidades Proto6 Explicadas
As seis vulnerabilidades são detalhadas da seguinte forma:
* **CVE-2026-44289** (pontuação CVSS: 7.5): DoS através de recursão protobuf ilimitada.
* **CVE-2026-44290** (pontuação CVSS: 7.5): DoS em todo o processo ao carregar schemas com caminhos de opção inseguros.
* **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 campo elaborados 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 schema elaborados.
A **Cyera** atribui essas vulnerabilidades à suposição padrão da biblioteca de que as entradas de schema e metadados são confiáveis. Essa falha crítica de validação pode manipular o comportamento da aplicação, potencialmente levando à execução de código.
### Cenários de Ataque
**Morag** enfatizou que, embora a exploração exija condições específicas, elas são cada vez mais comuns em ecossistemas modernos de dados e IA que frequentemente trocam dados, schemas e arquivos de configuração entre vários serviços e plataformas.
Um atacante poderia injetar um schema **protobuf** malicioso para comprometer fluxos de trabalho de CI/CD, levando ao vazamento de segredos de build (**CVE-2026-44295**). Alternativamente, uma mensagem especialmente elaborada poderia travar serviços **Node.js**, como bots do **WhatsApp** construídos usando **Baileys** (**CVE-2026-44292**).
### A Falha Mais Severa: CVE-2026-44291
A vulnerabilidade mais crítica, **CVE-2026-44291**, permite a execução de código quando uma aplicação **Node.js** processa entrada controlada pelo atacante.
**Vladimir Tokarev**, outro pesquisador de segurança, explicou o mecanismo: “Essa entrada atinge um gadget de poluição de protótipo. Posteriormente, o mesmo processo usa **protobuf.js** para codificar ou decodificar uma mensagem. Como **protobuf.js** resolve nomes de tipo através de buscas de propriedade simples, um **Object.prototype** poluído pode fazer com que uma string controlada pelo atacante pareça um primitivo **protobuf** válido.”
Ele acrescentou: “**Protobuf.js** então insere essa string em uma função geradora ou decodificadora e a compila com **Function()**. O atacante obtém execução JavaScript arbitrária dentro do processo **Node.js**.”
### Versões Afetadas e Correções
As seguintes versões da ferramenta sã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
Correções estão disponíveis nas versões 7.5.6 e 8.0.2 do **protobufjs**, e nas versões 1.2.1 e 2.0.2 do **protobufjs-cli**. Os usuários são fortemente aconselhados a aplicar essas atualizações imediatamente para mitigar ameaças potenciais.
### Uma Nova Superfície de Ataque para Cargas de Trabalho de IA
A **Cyera** concluiu, ressaltando as amplas implicações: “Como **protobuf.js** é amplamente utilizado em bancos de dados, stores vetoriais, pipelines de inferência, sistemas de orquestração, ferramentas de CI/CD e SDKs de nuvem, a exploração bem-sucedida pode impactar cargas de trabalho corporativas e de IA sensíveis em escala.”
Este incidente destaca uma tendência crescente onde “Software moderno trata cada vez mais schemas, metadados e arquivos de configuração como entradas confiáveis que impulsionam a automação, orquestração e geração de código. Quando essas suposições de confiança falham, os 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.”