CVE-2026-44290: protobufjs: Process-wide denial of service through unsafe option paths

Published May 12, 2026
·
Updated

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.

Other sources

protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.5.6 and 8.0.2, 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. 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 parse or load protobuf schemas or JSON descriptors from untrusted sources using protobufjs reflection APIs such as `parse`, `Root.load`, `Root.loadSync`, or `Root.fromJSON` when running versions prior to 7.5.6 or 8.0.2.

    Application schema loading (protobufjs reflection APIs) Untrusted protobuf schema/descriptor loading = disallow
  6. Configuration

    If untrusted schemas must be accepted, validate or reject option names containing unsafe property path components before loading them (prevent traversal of unsafe inherited properties during option processing).

    Application schema validation Option-name/path validation before protobufjs load = validate_or_reject
  7. Compensating control

    If untrusted schemas must be accepted, run protobufjs schema processing in an isolated process.

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:41 PM
Data Sourced
via MITRE·02:41 PM
DescriptionSeverityWeakness
Data Sourced
via Red Hat·04:04 PM
DescriptionSeverityAffected Software
Data Sourced
via NVD·04:16 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-44290?

CVE-2026-44290 is classified with a medium severity level due to potential corruption of global JavaScript constructors.

2

How do I fix CVE-2026-44290?

To remediate CVE-2026-44290, upgrade protobufjs to version 8.0.2 or 7.5.6.

3

What versions of protobufjs are affected by CVE-2026-44290?

CVE-2026-44290 affects versions 8.0.0 to 8.0.1 and 7.5.5 and below.

4

What type of impact does CVE-2026-44290 have on applications?

CVE-2026-44290 can allow crafted protobuf schemas to manipulate global properties, potentially leading to application instability or security breaches.

5

Is CVE-2026-44290 a client-side or server-side vulnerability?

CVE-2026-44290 is primarily a server-side vulnerability that can affect any application using affected versions of protobufjs.

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