Orpc · Orpc · CVE-2026-28794
**Nome do Software Vulnerável e Versões Afetadas**
orpc versões anteriores a 1.13.6
@orpc/client versões anteriores a 1.13.6
**Descrição**
Existe uma vulnerabilidade crítica de poluição de protótipo no desserializador JSON RPC do pacote `@orpc/client`. Isso permite que atacantes remotos não autenticados injetem propriedades arbitrárias no `Object.prototype` global. A poluição persiste durante todo o processo do Node.js e afeta todos os objetos, podendo levar a graves violações de segurança, incluindo bypass de autenticação, negação de serviço e Execução Remota de Código (RCE). A causa raiz está no método `deserialize()` do `StandardRPCJsonSerializer`, que não valida nem sanitiza chaves perigosas de objetos JavaScript, como ` proto ` e `constructor`, ao processar segmentos de caminho controlados pelo atacante provenientes dos arrays `meta` e `maps`. O vetor `maps` permite a injeção de valores de string arbitrários, pois o valor retornado por `getBlob(i)` é convertido para Blob, o que é uma conversão em tempo de compilação do TypeScript. Essa desserialização ocorre antes da validação do esquema Zod, o que significa que uma carga maliciosa poluirá o protótipo mesmo que a solicitação seja posteriormente rejeitada pela camada de validação. A vulnerabilidade pode ser explorada enviando uma carga maliciosa ao endpoint da API `/rpc/planet/create` com dados no parâmetro `data`, especificamente manipulando o array `maps` para definir `Object.prototype.role` como `"admin"`. Isso afeta todos os adaptadores de servidor que utilizam o protocolo RPC.
**Recomendações**
Atualize para a versão 1.13.6 ou posterior do orpc.
Atualize para a versão 1.13.6 ou posterior do @orpc/client.