Vulnerabilidade Crítica de RCE Descoberta na Biblioteca protobuf.js Amplamente Utilizada
Uma vulnerabilidade crítica de execução remota de código (RCE) foi identificada em **protobuf.js**, uma implementação popular em JavaScript dos Protocol Buffers do **Google**. Código de exploit de prova de conceito já está disponível, levantando preocupações para aplicações que dependem desta biblioteca para comunicação inter-serviços e manipulação de dados.

**protobuf.js**, com quase 50 milhões de downloads semanais no registro do **Node Package Manager (npm)**, está sob escrutínio devido a uma falha de execução remota de código (RCE) recentemente divulgada. A vulnerabilidade decorre da geração dinâmica insegura de código, conforme relatado pela **Endor Labs**.
### A Vulnerabilidade: GHSA-xq3m-2v4x-88gg
Atualmente rastreada como GHSA-xq3m-2v4x-88gg (sem um ID **CVE** oficial), a vulnerabilidade permite que atacantes injetem código arbitrário em funções geradas ao fornecer schemas maliciosos. Isso ocorre devido ao método da biblioteca de construir funções JavaScript a partir de schemas protobuf concatenando strings e executando-as através do construtor `Function()` sem validação adequada dos identificadores derivados do schema.
A **Endor Labs** explica que essa falha permite RCE em servidores ou aplicações que carregam schemas influenciados por atacantes. A exploração bem-sucedida pode conceder acesso a informações sensíveis, como variáveis de ambiente, credenciais e bancos de dados, potencialmente levando a movimento lateral dentro da infraestrutura comprometida. Máquinas de desenvolvedores também estão em risco se processarem schemas não confiáveis localmente.
### Impacto e Mitigação
A vulnerabilidade afeta as versões 8.0.0/7.5.4 e inferiores do **protobuf.js**. Para mitigar o risco, a **Endor Labs** recomenda fortemente a atualização para as versões 8.0.1 e 7.5.5, que incluem um patch que sanitiza nomes de tipos removendo caracteres não alfanuméricos. Embora este patch forneça alívio imediato, a **Endor Labs** sugere que uma solução mais robusta e de longo prazo seria eliminar o uso de `Function` completamente para identificadores alcançáveis por atacantes.
"A exploração é direta", adverte a **Endor Labs**, referindo-se ao [conselho de segurança](https://github.com/protobufjs/protobuf.js/security/advisories/GHSA-xq3m-2v4x-88gg) com um proof-of-concept (PoC) mínimo incluído. Até o momento, não há relatos de exploração ativa em larga escala.
### Cronograma de Divulgação
A vulnerabilidade foi relatada pelo pesquisador da **Endor Labs**, **Cristian Staicu**, em 2 de março. Os mantenedores do **protobuf.js** lançaram um patch no GitHub em 11 de março. Pacotes **npm** atualizados foram disponibilizados em 4 de abril para o branch 8.x e em 15 de abril para o branch 7.x.
### Recomendações
Além da atualização, a **Endor Labs** recomenda:
* Auditar dependências transitivas.
* Tratar o carregamento de schemas como entrada não confiável.
* Preferir schemas pré-compilados/estáticos em ambientes de produção.
