Skip to main content

protobuf.js CVE-2026-59876

| EUVDEUVD-2026-42311 MEDIUM
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-07-08 GitHub_M GHSA-jfj6-75fj-8934
4.8
CVSS 3.1 · NVD
Share

Severity by source

Vendor (GitHub_M) PRIMARY
MEDIUM
qualitative
NVD
4.8 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
vuln.today AI
4.8 MEDIUM

AV:N for network-deliverable input; AC:H because textformat extension must be in explicit use and downstream code must exhibit prototype-pollution-susceptible patterns; PR:N as no authentication is needed to submit crafted input; no availability impact from prototype pollution alone.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Red Hat
4.8 MEDIUM
qualitative

Primary rating from Vendor (GitHub_M).

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch available
Jul 08, 2026 - 17:01 EUVD
Analysis Generated
Jul 08, 2026 - 16:49 vuln.today

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 24 npm packages depend on protobufjs (1 direct, 23 indirect)

Ecosystem-wide dependent count for version 8.2.0.

DescriptionNVD

protobufjs compiles protobuf definitions into JavaScript (JS) functions. From 8.2.0 until 8.6.5, the protobufjs Text Format extension parsed string-keyed map entries using ordinary property assignment, allowing a map entry with key __proto__ to change the prototype of the returned map object instead of creating an own map entry in protobufjs/ext/textformat. This issue is fixed in version 8.6.5.

AnalysisAI

Prototype pollution in protobuf.js versions 8.2.0 through 8.6.4 allows network-reachable attackers to corrupt JavaScript object prototype chains via the Text Format extension, by supplying a map entry whose key is the reserved JavaScript token __proto__, causing the parser to overwrite the prototype of the returned map object instead of creating a literal own-property entry. Exploitation is constrained by high attack complexity - only applications explicitly using the optional /ext/textformat module and parsing attacker-controlled input are affected - and real-world impact is limited to partial confidentiality and integrity effects in downstream code that inherits or enumerates poisoned prototype properties. No active exploitation has been confirmed (not in CISA KEV) and no public exploit code has been identified at time of analysis.

Technical ContextAI

protobuf.js is a widely-used JavaScript/TypeScript library that compiles Protocol Buffer (protobuf) schema definitions into JS functions for serializing and deserializing structured data. The optional Text Format extension (protobufjs/ext/textformat) provides human-readable protobuf serialization, distinct from the default binary wire format. The root cause is CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes - Prototype Pollution): the extension used ordinary bracket-notation property assignment (mapObject[key] = value) when constructing map return objects, without sanitizing keys against JavaScript reserved tokens. When key equals __proto__, the JavaScript engine interprets the assignment as a prototype chain mutation rather than a data property write. Safe alternatives include using Object.create(null) to produce prototype-less maps, using Object.defineProperty with explicit descriptor flags, or explicitly rejecting keys matching __proto__, constructor, and prototype. The affected CPE is cpe:2.3:a:protobufjs:protobuf.js:*:*:*:*:*:*:*:* for the version range 8.2.0-8.6.4.

RemediationAI

Vendor-released patch: 8.6.5 - upgrade the protobufjs npm package to version 8.6.5 or later, available at https://github.com/protobufjs/protobuf.js/releases/tag/protobufjs-v8.6.5. The upstream fix is documented in pull request https://github.com/protobufjs/protobuf.js/pull/2335 and commit 9f97fe413072d3beb52c74e62d88ea8adc9444d8. If immediate patching is not possible, the most effective workaround is to stop using the protobufjs/ext/textformat extension entirely and migrate to the default binary protobuf format, which is unaffected; this may require client-side changes if text-format is used for interoperability. If the text-format extension cannot be disabled, add an input validation layer that rejects or sanitizes map keys matching __proto__, constructor, or prototype before passing data to the parser - note this is a defense-in-depth measure only and should not replace patching.

CVE-2026-34621 HIGH POC
8.6 Apr 11

Prototype pollution in Adobe Acrobat Reader versions 24.001.30356, 26.001.21367 and earlier enables arbitrary code execu

CVE-2024-56059 CRITICAL
9.8 Dec 18

Prototype pollution in the farinspace Partners WordPress plugin (versions up to and including 0.2.0) enables remote unau

CVE-2020-28271 CRITICAL POC
9.8 Nov 12

Prototype pollution vulnerability in 'deephas' versions 1.0.0 through 1.0.5 allows attacker to cause a denial of service

CVE-2023-38894 CRITICAL POC
9.8 Aug 16

A Prototype Pollution issue in Cronvel Tree-kit v.0.7.4 and before allows a remote attacker to execute arbitrary code vi

CVE-2024-24292 CRITICAL POC
9.8 Mar 28

A Prototype Pollution issue in Aliconnect /sdk v.0.0.6 allows an attacker to execute arbitrary code via the aim function

CVE-2023-26121 CRITICAL POC
10.0 Apr 11

All versions of the package safe-eval are vulnerable to Prototype Pollution via the safeEval function, due to improper s

CVE-2021-23449 CRITICAL POC
10.0 Oct 18

This affects the package vm2 before 3.9.4 via a Prototype Pollution attack vector, which can lead to execution of arbitr

CVE-2024-39011 CRITICAL POC
9.8 Jul 30

Prototype Pollution in chargeover redoc v2.0.9-rc.69 allows attackers to execute arbitrary code or cause a Denial of Ser

CVE-2024-38988 CRITICAL POC
9.8 Mar 28

alizeait unflatto <= 1.0.2 was discovered to contain a prototype pollution via the method exports.unflatto at /dist/inde

CVE-2025-57347 CRITICAL POC
9.8 Sep 24

A vulnerability exists in the 'dagre-d3-es' Node.js package version 7.0.9, specifically within the 'bk' module's addConf

CVE-2025-57321 CRITICAL POC
9.8 Sep 24

A Prototype Pollution vulnerability in the util-deps.addFileDepend function of magix-combine-ex versions thru 1.2.10 all

CVE-2024-45435 CRITICAL POC
9.8 Aug 29

Chartist 1.x through 1.3.0 allows Prototype Pollution via the extend function. Rated critical severity (CVSS 9.8), this

Vendor StatusVendor

Share

CVE-2026-59876 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy