protobufjs CVE-2026-44292
MEDIUMAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconParse attacker JSON input
-
DeliveryExtract plain object with `__proto__` property
-
ExploitPass object to message constructor
-
InstallConstructor copies `__proto__` to message instance
-
C2Message prototype chain modified
-
ExecuteApplication calls inherited method or performs type check
-
ImpactAttacker-controlled prototype behavior executed
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 | The application must pass an attacker-controlled plain object to a generated protobufjs message constructor (e.g., |
| Impact | CVSS 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N) indicates network-accessible unauthenticated exploitation with low attack complexity, but confidentiality and availability are not impacted-only integrity of the message instance prototype. EPSS score not provided. No CISA KEV status or public exploit code identified. Real-world risk is moderate but heavily dependent on application architecture: applications that only decode binary protobuf data from trusted sources face zero risk; applications accepting JSON input for message construction face elevated risk proportional to how downstream code relies on inherited properties, prototype methods, or |
| Exploit ScenarioDerived | A web service accepts JSON input via REST API and constructs protobufjs message objects from parsed JSON using code like |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 12, 2026
Prototype injection in protobufjs generated message constructors allows attackers controlling plain objects passed to message constructors to modify the prototype chain of individual message instances via an enumerable __proto__ property. Affects protobufjs versions 7.5.5 and earlier, and 8.0.0-8.0.1. This is a per-instance prototype pollution issue (not global) with impact dependent on downstream application behavior such as inherited property reliance or instanceof checks. No active exploitation confirmed; no public exploit identified at time of analysis.
RemediationAI
Upgrade to patched versions: protobufjs 7.5.6 or later for the 7.x branch, or 8.0.2 or later for the 8.x branch. Release notes available at https://github.com/protobufjs/protobuf.js/releases/tag/protobufjs-v7.5.6. Interim workaround if immediate upgrade is not feasible: sanitize or validate object keys before passing plain objects to generated message constructors, explicitly rejecting any object with an own __proto__ property using hasOwnProperty('__proto__') checks or by reconstructing the object to exclude prototype-altering keys. Alternatively, use Object.create(null) or other mechanisms to ensure input objects cannot define __proto__ as an own enumerable property. Note that sanitization adds processing overhead and maintainability burden, so patching is strongly preferred.
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
protobufjs is a JavaScript protocol buffer implementation that generates message constructors for binary protobuf encoding/decoding. The vulnerability exists in the message constructor code generation, which copies enumerable properties from a user-supplied plain object without filtering the special __proto__ key. In JavaScript, __proto__ is a special property that defines an object's prototype chain. When an object literal with an own enumerable __proto__ property (e.g., from parsed JSON input via JSON.parse()) is passed to a generated message constructor, the constructor blindly copies this property, causing the resulting message instance to inherit from the attacker-controlled prototype instead of the intended message prototype. This is distinct from global prototype pollution because it affects only the individual message instance, not Object.prototype or shared prototypes. The root cause is classified as CWE-1321 (Improperly Controlled Modification of Object-Prototype Attributes in JavaScript).
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:L/A:N
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
DescriptionGitHub Advisory
Summary
protobufjs generated message constructors copied enumerable properties from a provided properties object without filtering the __proto__ key. If an application constructed a message from an attacker-controlled plain object, an own enumerable __proto__ property could alter the prototype of that individual message instance.
Impact
An attacker who can control the properties object passed to a generated protobufjs message constructor or creation helper may be able to modify the prototype chain of the resulting message instance.
This is a per-instance prototype injection issue. It does not pollute Object.prototype or other global prototypes. The impact depends on downstream application behavior, such as relying on inherited properties, prototype methods, or instanceof checks for message objects.
Applications that only decode binary protobuf data, or that construct messages from trusted application-defined objects, are not directly affected by this issue.
Preconditions
- The application must allow an attacker to control or influence a plain object used to construct a protobufjs message.
- The object must contain an own enumerable
__proto__property, for example from parsed JSON input. - The application must pass that object to a generated message constructor or creation helper that copies arbitrary enumerable properties.
Workarounds
Do not pass attacker-controlled plain objects directly to generated message constructors with affected versions. If untrusted JSON input must be accepted, validate or sanitize object keys before constructing messages, and reject __proto__ properties.
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.
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.
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-fx83-v9x8-x52w
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB