Skip to main content

protobufjs CVE-2026-44290

HIGH
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-05-12 https://github.com/protobufjs/protobuf.js GHSA-jvwf-75h9-cwgg
7.5
CVSS 3.1 · GitHub Advisory
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Submit crafted protobuf schema
  2. Delivery
    Application parses via Root.load()
  3. Exploit
    Option path traverses __proto__
  4. Install
    Write to global constructor prototype
  5. C2
    Corrupt process-wide JavaScript built-ins
  6. Execute
    Trigger application logic errors
  7. Impact
    Persistent denial of service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V3 - Web Frontend Security Prototype pollution prevention
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires three specific preconditions from the vendor advisory: (1) Application accepts attacker-controlled or attacker-influenced protobuf schema files (.proto) or JSON descriptors-not just protobuf message payloads; this is the critical limiting factor distinguishing vulnerable deployments from the majority using static schemas; (2) Application parses these schemas using protobufjs reflection APIs: parse(), Root.load(), Root.loadSync(), or Root.fromJSON()-compiled/generated message classes are not vulnerable; (3) Crafted schema includes option paths with unsafe property traversal like __proto__ or constructor.prototype that reach inherited object properties during option processing. Applications using bundled, version-controlled, or otherwise trusted schemas to decode untrusted protobuf message payloads are explicitly NOT affected per vendor advisory. Exploitation is limited to: developer tools, API gateways with dynamic schema loading, schema registries, protobuf validation services, or applications with file upload features accepting .proto files.

Impact

Real-world risk requires careful contextualization beyond the CVSS 7.5 score. The CVSS vector (AV:N/AC:L/PR:N/UI:N) indicates network-accessible remote exploitation without authentication, which appears severe. However, exploitation requires the application to parse attacker-controlled schemas or JSON descriptors-a significantly narrower attack surface than parsing untrusted message payloads. Most production applications use pre-compiled or bundled schemas and only parse untrusted binary messages, making them immune to this vulnerability per the vendor advisory. The impact is limited to persistent denial of service through state corruption; the vendor explicitly states the issue is not known to allow code execution despite the RCE tag. No CISA KEV listing and no public exploit code at time of analysis suggest this has not been widely weaponized. EPSS data not provided, but the specific preconditions (schema control, not just message control) likely result in lower real-world exploitation probability than the raw CVSS suggests. Priority should focus on applications with dynamic schema loading from external or user-provided sources (API gateways, schema registries, dev tools). Applications using static schemas for message decoding can deprioritize.

Exploit ScenarioDerived

An attacker identifies a web application that accepts user-uploaded protobuf schema files for dynamic message validation or a gRPC API gateway that loads service definitions from a public schema registry. The attacker crafts a malicious .proto file or JSON descriptor containing an option path like 'constructor.prototype.isAdmin' set to true. When the application parses this schema via Root.loadSync(), protobufjs writes to Object.prototype.isAdmin, injecting this property into all JavaScript objects process-wide. Subsequent application code checking if (user.isAdmin) now always evaluates to true for all users, or protobufjs internal operations fail due to corrupted built-ins, causing persistent denial of service until the Node.js process restarts. The attacker achieves sustained disruption or privilege escalation through corrupted global state, not direct code execution.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 12, 2026

Prototype pollution in protobufjs allows denial of service through corrupted JavaScript built-ins when parsing untrusted schemas. Attackers who control protobuf schemas or JSON descriptors can write to inherited object properties on global constructors, causing process-wide state corruption that persists until restart. CVSS 7.5 (High) with network vector and no authentication required, but real-world risk is limited to applications parsing schemas from untrusted sources-applications only decoding untrusted message payloads with trusted schemas are not affected. Vendor-released patches available: v7.5.6 and v8.0.2. No active exploitation confirmed (not in CISA KEV), and no public exploit code identified at time of analysis.

RemediationAI

Upgrade to patched versions immediately: v7.5.6 for 7.x users or v8.0.2 for 8.x users per vendor releases at https://github.com/protobufjs/protobuf.js/releases/tag/protobufjs-v7.5.6 and https://github.com/protobufjs/protobuf.js/releases/tag/protobufjs-v8.0.2. The v7.5.6 release backports input hardening and CLI fixes (commit 75392ea). If immediate patching is not feasible, implement compensating controls: (1) Reject all protobuf schemas and JSON descriptors from untrusted sources-only load schemas from version-controlled, reviewed sources bundled with the application; (2) If untrusted schema input is unavoidable, validate option paths before parsing by rejecting schemas containing unsafe property names like __proto__, constructor, or prototype in option paths; (3) Isolate schema processing in a separate Node.js worker process with restricted permissions and restart it after each schema load to contain corruption; this adds significant performance overhead and complexity. Applications that only decode untrusted protobuf messages using pre-compiled or bundled schemas do not require emergency action, but should still upgrade during normal maintenance cycles to eliminate the attack vector entirely.

Affected Packages

npm protobufjs fix: 7.5.6, 8.0.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

This vulnerability affects protobufjs (pkg:npm/protobufjs), a JavaScript implementation of Protocol Buffers for serialization. The issue stems from CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes, commonly called prototype pollution). During schema option processing via reflection APIs (parse, Root.load, Root.loadSync, Root.fromJSON), protobufjs failed to sanitize option paths, allowing traversal through JavaScript's prototype chain. Crafted schema option paths could reach inherited properties like __proto__ or constructor.prototype, enabling writes to global constructors (Object, Array, etc.). This corrupts process-wide built-in functionality rather than application-specific state. The vulnerability exists in protobufjs <=7.5.5 and versions 8.0.0-8.0.1, affecting Node.js and browser environments using the library for dynamic schema parsing.

Know when Prototype Pollution gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

GitHub Advisory PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Red Hat 7.5 HIGH

Primary rating from GitHub Advisory.

CVSS VectorGitHub Advisory

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

DescriptionGitHub Advisory

Summary

protobufjs allowed certain schema option paths to traverse through inherited object properties while applying options. A crafted protobuf schema or JSON descriptor could cause option handling to write to properties on global JavaScript constructors, corrupting process-wide built-in functionality.

Impact

An attacker who can provide or influence protobuf schemas or JSON descriptors may be able to corrupt built-in process state in a way that causes subsequent application code or protobufjs code to fail. This can result in a persistent denial of service for the lifetime of the affected process.

This issue affects applications that parse or load protobuf schemas or descriptors from untrusted sources. Applications that use bundled, generated, or otherwise trusted schemas to decode untrusted protobuf message payloads are not directly affected.

The issue is not known to allow code execution by itself.

Preconditions

  • The application must allow an attacker to control or influence a protobuf schema or JSON descriptor.
  • The application must parse or load that schema through protobufjs reflection APIs such as parse, Root.load, Root.loadSync, or Root.fromJSON.
  • The crafted input must contain option paths that reach unsafe inherited properties during option processing.

Workarounds

Do not parse or load protobuf schemas or JSON descriptors from untrusted sources with affected versions. If untrusted schemas must be accepted, validate or reject option names containing unsafe property path components before loading them, and run schema processing in an isolated process.

Blast Radius

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

Ecosystem-wide dependent count for version 8.0.0.

Executive ViewAI

Why It Matters

Prototype pollution vulnerability in protobufjs (CVE-2026-44290) enables denial of service attacks against applications that parse untrusted protobuf schemas or JSON descriptors, allowing attackers to corrupt JavaScript built-ins and crash services until restart. Organizations using protobufjs to process schemas from external or user-controlled sources face service availability risk, though applications decoding only message payloads with pre-trusted schemas remain unaffected.

Business Impact: High
Compensating Controls

If immediate patching is not feasible: (1) Restrict schema parsing to trusted, internally-controlled sources only; (2) Implement input validation and schema allowlisting to prevent untrusted schema processing; (3) Isolate services parsing external schemas in separate processes or containers to limit blast radius of state corruption; (4) Implement automated process monitoring and restart policies to minimize downtime from crashes. Apply vendor patch (v7.5.6 or v8.0.2) as primary remediation.

Threat Intelligence Overview

EPSS Score
0.0%
Top 87% exploitable
Threat Intel
1
1 source
Data Quality
3 sources
Confidence: Low
NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Affected Products (CPE)GitHub Advisory

pkg:npm/protobufjs
pkg:npm/protobufjs
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-2021-23450 CRITICAL POC
9.8 Dec 17

All versions of package dojo are vulnerable to Prototype Pollution via the setObject function. Rated critical severity (

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-2021-23383 CRITICAL POC
9.8 May 04

The package handlebars before 4.7.7 are vulnerable to Prototype Pollution when selecting certain compiling options to co

CVE-2020-7788 CRITICAL POC
9.8 Dec 11

This affects the package ini before 1.3.6. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitabl

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

Vendor StatusVendor

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