protobufjs CVE-2026-44290
HIGHAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconSubmit crafted protobuf schema
-
DeliveryApplication parses via Root.load()
-
ExploitOption path traverses __proto__
-
InstallWrite to global constructor prototype
-
C2Corrupt process-wide JavaScript built-ins
-
ExecuteTrigger application logic errors
-
ImpactPersistent 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
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, orRoot.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- 1,832 npm packages depend on protobufjs (158 direct, 1,675 indirect)
Ecosystem-wide dependent count for version 8.0.0.
Executive ViewAI
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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
More in Prototype Pollution
View allPrototype pollution in Adobe Acrobat Reader versions 24.001.30356, 26.001.21367 and earlier enables arbitrary code execu
All versions of package dojo are vulnerable to Prototype Pollution via the setObject function. Rated critical severity (
Prototype pollution in the farinspace Partners WordPress plugin (versions up to and including 0.2.0) enables remote unau
The package handlebars before 4.7.7 are vulnerable to Prototype Pollution when selecting certain compiling options to co
This affects the package ini before 1.3.6. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitabl
Prototype pollution vulnerability in 'deephas' versions 1.0.0 through 1.0.5 allows attacker to cause a denial of service
A Prototype Pollution issue in Cronvel Tree-kit v.0.7.4 and before allows a remote attacker to execute arbitrary code vi
A Prototype Pollution issue in Aliconnect /sdk v.0.0.6 allows an attacker to execute arbitrary code via the aim function
All versions of the package safe-eval are vulnerable to Prototype Pollution via the safeEval function, due to improper s
This affects the package vm2 before 3.9.4 via a Prototype Pollution attack vector, which can lead to execution of arbitr
Prototype Pollution in chargeover redoc v2.0.9-rc.69 allows attackers to execute arbitrary code or cause a Denial of Ser
alizeait unflatto <= 1.0.2 was discovered to contain a prototype pollution via the method exports.unflatto at /dist/inde
GHSA-jvwf-75h9-cwgg
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB