Prototype Pollution
Description
Prototype Pollution in gRPC Node.js packages (grpc and @grpc/grpc-js) via loadPackageDefinition allows attackers to modify object prototypes.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Prototype Pollution in gRPC Node.js packages (grpc and @grpc/grpc-js) via loadPackageDefinition allows attackers to modify object prototypes.
Vulnerability
Overview
The gRPC Node.js packages (grpc before 1.24.4 and @grpc/grpc-js before 1.1.8) are vulnerable to Prototype Pollution through the loadPackageDefinition function [1][2][3]. This security flaw arises because the function does not properly sanitize or validate input when processing package definitions, allowing an attacker to pollute the prototype of base objects (Object.prototype) by injecting properties with malicious keys, such as __proto__ or constructor.prototype [3].
Attack
Vector and Prerequisites
Exploitation of this vulnerability requires the attacker to supply a crafted input to the loadPackageDefinition method, typically via a malicious .proto file or server reflection response that contains a specially named package or service [1][2][3]. No authentication is needed if the application processes untrusted gRPC definitions. The attack is performed on the client or server side whenever loadPackageDefinition is called with attacker-controlled data, making it accessible over the network if the gRPC endpoint accepts external definitions [3].
Impact
Successful Prototype Pollution can lead to remote code execution (RCE) by leveraging the polluted prototype to modify properties of objects across the application, ultimately altering control flow in unexpected ways [3]. The attack can bypass property checks and inject arbitrary properties into all objects inheriting from the polluted prototype, potentially leading to denial of service, privilege escalation, or other security breaches depending on the application context [3].
Mitigation
Users should upgrade to grpc version 1.24.4 or later and @grpc/grpc-js version 1.1.8 or later, which include fixes that prevent prototype pollution by sanitizing keys in loadPackageDefinition [1][2][4]. No workarounds are known; applying the patches is the recommended mitigation. The vulnerability is listed in the CVE database as CVE-2020-7768 [3].
AI Insight generated on May 21, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
grpcnpm | < 1.24.4 | 1.24.4 |
@grpc/grpc-jsnpm | < 1.1.8 | 1.1.8 |
Affected products
3- ghsa-coords2 versions
< 1.1.8+ 1 more
- (no CPE)range: < 1.1.8
- (no CPE)range: < 1.24.4
Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
10- github.com/advisories/GHSA-pp75-xfpw-37g9ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2020-7768ghsaADVISORY
- github.com/grpc/grpc-node/pull/1605ghsax_refsource_MISCWEB
- github.com/grpc/grpc-node/pull/1606ghsax_refsource_MISCWEB
- github.com/grpc/grpc-node/releases/tag/grpc%401.24.4ghsaWEB
- snyk.io/vuln/SNYK-JAVA-ORGWEBJARSNPM-1038819ghsax_refsource_MISCWEB
- snyk.io/vuln/SNYK-JS-GRPC-598671ghsax_refsource_MISCWEB
- snyk.io/vuln/SNYK-JS-GRPCGRPCJS-1038818ghsax_refsource_MISCWEB
- www.npmjs.com/package/@grpc/grpc-jsghsaWEB
- www.npmjs.com/package/grpcghsaWEB
News mentions
0No linked articles in our index yet.