CVE-2026-44292: protobufjs: Prototype injection in generated message constructors

Published May 12, 2026
·
Updated

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.

Other sources

protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.5.6 and 8.0.2, 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. This vulnerability is fixed in 7.5.6 and 8.0.2.

MITRE

Affected Software

4 affected componentsFixes available
npm/protobufjs>=8.0.0<=8.0.1
8.0.2
npm/protobufjs<=7.5.5
7.5.6
Protobufjs Project Protobufjs Node.js<7.5.6
Protobufjs Project Protobufjs Node.js>=8.0.0<8.0.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/protobufjs to a version that resolves this vulnerability.

    Fixed in 8.0.2
  2. Upgrade

    Upgrade npm/protobufjs to a version that resolves this vulnerability.

    Fixed in 7.5.6
  3. Upgrade

    Upgrade protobufjs to a version that resolves this vulnerability.

    Fixed in 7.5.6
  4. Upgrade

    Upgrade protobufjs to a version that resolves this vulnerability.

    Fixed in 8.0.2
  5. Configuration

    Do not pass attacker-controlled plain objects directly to protobufjs generated message constructors/creation helpers for versions prior to 7.5.6 and 8.0.2; if untrusted JSON input must be accepted, validate/sanitize object keys and reject an own enumerable `__proto__` property before constructing the message.

    Application code using protobufjs generated message constructors __proto__ handling for attacker-controlled plain objects = Reject/Filter own enumerable __proto__ property

Event History

May 12, 2026
Advisory Published
via GitHub·03:01 PM
Data Sourced
via GitHub·03:01 PM
DescriptionSeverityWeaknessAffected Software
May 13, 2026
CVE Published
via MITRE·02:42 PM
Data Sourced
via MITRE·02:42 PM
DescriptionSeverityWeakness
Data Sourced
via Red Hat·04:03 PM
DescriptionSeverityAffected Software
Data Sourced
via NVD·04:16 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-44292?

CVE-2026-44292 is rated as a moderate severity vulnerability due to its potential for causing prototype pollution.

2

How do I fix CVE-2026-44292?

To fix CVE-2026-44292, upgrade protobufjs to version 8.0.2 or 7.5.6 or later.

3

What software is affected by CVE-2026-44292?

The software affected by CVE-2026-44292 is protobufjs, specifically versions from 8.0.0 to 8.0.1 and up to 7.5.5.

4

What impact does CVE-2026-44292 have on applications?

CVE-2026-44292 can allow an attacker to alter an application's prototype chain, potentially leading to unauthorized access or manipulation of object properties.

5

Is CVE-2026-44292 being actively exploited?

As of now, there have been no reported active exploits for CVE-2026-44292, but it is advisable to patch the vulnerability promptly.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203