Every CVE Search/ Get API key

CVE-2026-59877

protobufjs: Denial of Service via infinite loop in .proto option parsing

5.3 MediumFix available

protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.6.5 and 8.6.6, protobufjs parsed option names by advancing through schema tokens until reaching an = token without checking for end of input, so a crafted .proto schema that opens an option declaration and ends prematurely can cause parse, Root.load, or Root.loadSync to loop indefinitely. This issue is fixed in versions 7.6.5 and 8.6.6.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
Low

Exploit likelihood

0.36%Unchanged since Jul 9, 2026
90%50%10%1%

What each source reports

CVE List Score used 5.3

protobufjs: Denial of Service via infinite loop in .proto option parsing

protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.6.5 and 8.6.6, protobufjs parsed option names by advancing through schema tokens until reaching an = token without checking for end of input, so a crafted .proto schema that opens an option declaration and ends prematurely can cause parse, Root.load, or Root.loadSync to loop indefinitely. This issue is fixed in versions 7.6.5 and 8.6.6.

Record
CVE-2026-59877
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-835
Updated
2026-11-02
EUVDEUVD-2026-42310 5.3

protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.6.5 and 8.6.6, protobufjs parsed option names by advancing through schema tokens until reaching an = token without checking for end of input, so a crafted .proto schema that opens an option declaration and ends prematurely can cause parse, Root.load, or Root.loadSync to loop indefinitely. This issue is fixed in versions 7.6.5 and 8.6.6.

Record
EUVD-2026-42310
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Updated
2026-11-02
GitHub AdvisoriesGHSA-j3f2-48v5-ccww 5.3

protobufjs: Denial of Service via infinite loop in .proto option parsing

Summary

protobufjs parsed option names by advancing through schema tokens until it reached an = token, without checking for end of input. A crafted .proto schema that opens an option declaration but ends prematurely could cause the option parser to loop without ever terminating.

This affects the reflection parsing path (parse, Root.load, Root.loadSync).

Impact

An attacker who can provide or influence .proto schema text parsed by an application may be able to cause the parsing call to never return. Because Node.js is single-threaded, the blocked event loop prevents all other work in the process, resulting in a denial of service that persists until the process is externally terminated.

Applications that only encode or decode protobuf binary data with trusted schemas are not directly affected.

Preconditions

  • The application must parse .proto schema text influenced by an attacker.
  • The schema must be parsed through APIs such as parse, Root.load, or Root.loadSync.
  • The crafted input must begin an option declaration that ends before its = assignment.

Workarounds

Do not parse .proto schemas from untrusted sources with affected versions. If untrusted schema text must be accepted, isolate parsing in a process or worker that can be safely terminated and bound it with a timeout, so a non-returning parse call cannot deny service to the rest of the application.

Record
GHSA-j3f2-48v5-ccww
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-835
Updated
2026-11-02
NVD 5.3

protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.6.5 and 8.6.6, protobufjs parsed option names by advancing through schema tokens until reaching an = token without checking for end of input, so a crafted .proto schema that opens an option declaration and ends prematurely can cause parse, Root.load, or Root.loadSync to loop indefinitely. This issue is fixed in versions 7.6.5 and 8.6.6.

Record
CVE-2026-59877
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-835
Updated
2026-11-02
OSV 5.3

protobufjs: Denial of Service via infinite loop in .proto option parsing

protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.6.5 and 8.6.6, protobufjs parsed option names by advancing through schema tokens until reaching an = token without checking for end of input, so a crafted .proto schema that opens an option declaration and ends prematurely can cause parse, Root.load, or Root.loadSync to loop indefinitely. This issue is fixed in versions 7.6.5 and 8.6.6.

Record
CVE-2026-59877
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-835
Updated
2026-11-02
OSVGHSA-j3f2-48v5-ccww 5.3

protobufjs: Denial of Service via infinite loop in .proto option parsing

Summary

protobufjs parsed option names by advancing through schema tokens until it reached an = token, without checking for end of input. A crafted .proto schema that opens an option declaration but ends prematurely could cause the option parser to loop without ever terminating.

This affects the reflection parsing path (parse, Root.load, Root.loadSync).

Impact

An attacker who can provide or influence .proto schema text parsed by an application may be able to cause the parsing call to never return. Because Node.js is single-threaded, the blocked event loop prevents all other work in the process, resulting in a denial of service that persists until the process is externally terminated.

Applications that only encode or decode protobuf binary data with trusted schemas are not directly affected.

Preconditions

  • The application must parse .proto schema text influenced by an attacker.
  • The schema must be parsed through APIs such as parse, Root.load, or Root.loadSync.
  • The crafted input must begin an option declaration that ends before its = assignment.

Workarounds

Do not parse .proto schemas from untrusted sources with affected versions. If untrusted schema text must be accepted, isolate parsing in a process or worker that can be safely terminated and bound it with a timeout, so a non-returning parse call cannot deny service to the rest of the application.

Record
GHSA-j3f2-48v5-ccww
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-835
Updated
2026-11-02
Show 6 moreShow less
OSVRHSA-2026:57590 8.6

Red Hat Security Advisory: rh-podman-desktop security, bug fix, and enhancement update

Record
RHSA-2026:57590
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Updated
2026-11-02
OSVCLSA-2026-1791293603 No score

TuxCare security update for protobufjs (12 CVEs)

TuxCare rebuilt protobufjs to address 12 CVEs. Fixed in 8.0.0-tuxcare.1.

Record
CLSA-2026-1791293603
Updated
2026-11-02
OSVCLSA-2026-1791362263 No score

TuxCare security update for protobufjs (11 CVEs)

TuxCare rebuilt protobufjs to address 11 CVEs. Fixed in 8.0.1-tuxcare.1.

Record
CLSA-2026-1791362263
Updated
2026-11-02
OSVCLSA-2026-1792476163 No score

TuxCare security update for protobufjs (1 CVE)

TuxCare rebuilt protobufjs to address 1 CVE. Fixed in 7.5.4-tuxcare.2.

Record
CLSA-2026-1792476163
Updated
2026-11-02
OSVCLSA-2026-1793630459 No score

TuxCare security update for protobufjs (1 CVE)

TuxCare rebuilt protobufjs to address 1 CVE. Fixed in 7.5.9-tuxcare.3.

Record
CLSA-2026-1793630459
Updated
2026-11-02
OSVROOT-APP-NPM-CVE-2026-59877 No score

CVE-2026-59877 in protobufjs - Patched by Root

Root has patched CVE-2026-59877 in the protobufjs package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-CVE-2026-59877
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
protobufjs
npm
7.5.0 to 7.6.4
7.6.5
protobufjs
npm
8.0.0 to 8.6.5
8.6.6
protobufjs
TuxCare:npm
From an advisory covering 12 CVEs
8.0.0-tuxcare.0 up to 8.0.0-tuxcare.1, plus listed versions
8.0.0
8.0.0-tuxcare.1
protobufjs
TuxCare:npm
From an advisory covering 11 CVEs
8.0.1-tuxcare.0 up to 8.0.1-tuxcare.1, plus listed versions
8.0.1
8.0.1-tuxcare.1
protobufjs
TuxCare:npm
7.5.4-tuxcare.0 up to 7.5.4-tuxcare.2, plus listed versions
7.5.47.5.4-tuxcare.1
7.5.4-tuxcare.2
protobufjs
TuxCare:npm
7.5.9-tuxcare.0 up to 7.5.9-tuxcare.3, plus listed versions
7.5.97.5.9-tuxcare.17.5.9-tuxcare.2
7.5.9-tuxcare.3
protobufjs
npm
7.5.0 up to 7.6.5
7.6.5
protobufjs
npm
8.0.0 up to 8.6.6
8.6.6
rh-podman-desktop
Red Hat:enterprise_linux:10.2
From an advisory covering 24 CVEs
before 0:1.1.2-1.el10_2
0:1.1.2-1.el10_2
protobufjs
Root:npm
before 7.6.1-aikido.1
7.6.1-aikido.17.5.5-aikido.68.0.3-aikido.57.5.6-aikido.47.5.8-aikido.28.3.0-aikido.27.5.7-aikido.48.0.1-aikido.88.2.0-aikido.27.6.3-aikido.17.6.2-aikido.17.5.4-aikido.87.6.4-aikido.17.5.7-aikido.57.6.1-aikido.28.2.0-aikido.37.5.6-aikido.57.5.5-aikido.77.5.8-aikido.38.3.0-aikido.38.0.3-aikido.68.0.1-aikido.97.6.2-aikido.27.5.5-aikido.8
@rootio/protobufjs
Root:npm
before 7.6.1-root.io.1
7.6.1-root.io.17.5.5-root.io.68.0.3-root.io.57.5.6-root.io.47.5.8-root.io.28.3.0-root.io.27.5.7-root.io.48.0.1-root.io.88.2.0-root.io.27.6.3-root.io.17.6.2-root.io.17.5.4-root.io.87.6.4-root.io.17.5.7-root.io.57.6.1-root.io.28.2.0-root.io.37.5.6-root.io.57.5.5-root.io.77.5.8-root.io.38.3.0-root.io.38.0.3-root.io.68.0.1-root.io.97.6.2-root.io.27.5.5-root.io.8

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-59877 is a medium vulnerability (CVSS 5.3) in Protobufjs Project Protobufjs, published July 8, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.36%, the 30th percentile. Fixed in protobufjs 7.6.5.

References

Show 166 moreShow less
MoveEnter Open