CVE-2026-44291
protobufjs: Code generation gadget after prototype pollution
protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.5.6 and 8.0.2, protobufjs used plain objects with inherited prototypes for internal type lookup tables used by generated encode and decode functions. If Object.prototype had already been polluted, those lookup tables could resolve attacker-controlled inherited properties as valid protobuf type information. This could cause attacker-controlled strings to be emitted into generated JavaScript code. This vulnerability is fixed in 7.5.6 and 8.0.2.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.1
protobufjs: Code generation gadget after prototype pollution
protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.5.6 and 8.0.2, protobufjs used plain objects with inherited prototypes for internal type lookup tables used by generated encode and decode functions. If Object.prototype had already been polluted, those lookup tables could resolve attacker-controlled inherited properties as valid protobuf type information. This could cause attacker-controlled strings to be emitted into generated JavaScript code. This vulnerability is fixed in 7.5.6 and 8.0.2.
- Record
CVE-2026-44291- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
EUVDEUVD-2026-30029
8.1
protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.5.6 and 8.0.2, protobufjs used plain objects with inherited prototypes for internal type lookup tables used by generated encode and decode functions. If Object.prototype had already been polluted, those lookup tables could resolve attacker-controlled inherited properties as valid protobuf type information. This could cause attacker-controlled strings to be emitted into generated JavaScript code. This vulnerability is fixed in 7.5.6 and 8.0.2.
- Record
EUVD-2026-30029- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-75px-5xx7-5xc7
8.1
protobuf.js: Code generation gadget after prototype pollution
Summary
protobufjs used plain objects with inherited prototypes for internal type lookup tables used by generated encode and decode functions. If Object.prototype had already been polluted, those lookup tables could resolve attacker-controlled inherited properties as valid protobuf type information.
This could cause attacker-controlled strings to be emitted into generated JavaScript code.
Impact
An attacker who can first trigger a prototype pollution vulnerability may be able to influence generated protobufjs encode or decode functions in a way that can lead to arbitrary JavaScript execution.
This issue requires a separate prototype pollution primitive before protobufjs is invoked.
Applications without a reachable prototype pollution primitive are not directly exploitable through this issue alone.
Preconditions
- The application or one of its dependencies must allow an attacker to pollute
Object.prototype. - The polluted property must affect protobufjs internal type lookup behavior.
- The application must use protobufjs functionality that generates encode or decode code for affected types.
- The generated code path must be reached after the prototype pollution has occurred.
Workarounds
Avoid running affected versions in applications where attacker-controlled input can pollute Object.prototype. If immediate upgrade is not possible, remove or mitigate reachable prototype pollution primitives and isolate schema/message processing from untrusted application state.
- Record
GHSA-75px-5xx7-5xc7- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94, CWE-1321
- Updated
- 2026-11-02
NVD
8.1
protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.5.6 and 8.0.2, protobufjs used plain objects with inherited prototypes for internal type lookup tables used by generated encode and decode functions. If Object.prototype had already been polluted, those lookup tables could resolve attacker-controlled inherited properties as valid protobuf type information. This could cause attacker-controlled strings to be emitted into generated JavaScript code. This vulnerability is fixed in 7.5.6 and 8.0.2.
- Record
CVE-2026-44291- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
OSV
8.1
protobufjs: Code generation gadget after prototype pollution
protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.5.6 and 8.0.2, protobufjs used plain objects with inherited prototypes for internal type lookup tables used by generated encode and decode functions. If Object.prototype had already been polluted, those lookup tables could resolve attacker-controlled inherited properties as valid protobuf type information. This could cause attacker-controlled strings to be emitted into generated JavaScript code. This vulnerability is fixed in 7.5.6 and 8.0.2.
- Record
CVE-2026-44291- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
OSVGHSA-75px-5xx7-5xc7
8.1
protobuf.js: Code generation gadget after prototype pollution
Summary
protobufjs used plain objects with inherited prototypes for internal type lookup tables used by generated encode and decode functions. If Object.prototype had already been polluted, those lookup tables could resolve attacker-controlled inherited properties as valid protobuf type information.
This could cause attacker-controlled strings to be emitted into generated JavaScript code.
Impact
An attacker who can first trigger a prototype pollution vulnerability may be able to influence generated protobufjs encode or decode functions in a way that can lead to arbitrary JavaScript execution.
This issue requires a separate prototype pollution primitive before protobufjs is invoked.
Applications without a reachable prototype pollution primitive are not directly exploitable through this issue alone.
Preconditions
- The application or one of its dependencies must allow an attacker to pollute
Object.prototype. - The polluted property must affect protobufjs internal type lookup behavior.
- The application must use protobufjs functionality that generates encode or decode code for affected types.
- The generated code path must be reached after the prototype pollution has occurred.
Workarounds
Avoid running affected versions in applications where attacker-controlled input can pollute Object.prototype. If immediate upgrade is not possible, remove or mitigate reachable prototype pollution primitives and isolate schema/message processing from untrusted application state.
- Record
GHSA-75px-5xx7-5xc7- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-1321, CWE-94
- Updated
- 2026-11-02
Show 12 moreShow less
OSVROOT-APP-NPM-CVE-2026-44291
8.1
CVE-2026-44291 in protobufjs - Patched by Root
Root has patched CVE-2026-44291 in the protobufjs package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2026-44291- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVCLSA-2026-1779670111 No score
TuxCare security update for protobufjs (3 CVEs)
TuxCare rebuilt protobufjs to address 3 CVEs. Fixed in 6.11.6-tuxcare.3.
- Record
CLSA-2026-1779670111- Updated
- 2026-11-02
OSVCLSA-2026-1784769544 No score
TuxCare security update for protobufjs (8 CVEs)
TuxCare rebuilt protobufjs to address 8 CVEs. Fixed in 2.2.1-tuxcare.1.
- Record
CLSA-2026-1784769544- Updated
- 2026-11-02
OSVCLSA-2026-1785380800 No score
TuxCare security update for protobufjs (4 CVEs)
TuxCare rebuilt protobufjs to address 4 CVEs. Fixed in 0.12.13-tuxcare.1.
- Record
CLSA-2026-1785380800- Updated
- 2026-11-02
OSVCLSA-2026-1785468075 No score
TuxCare security update for protobufjs (11 CVEs)
TuxCare rebuilt protobufjs to address 11 CVEs. Fixed in 6.8.8-tuxcare.1.
- Record
CLSA-2026-1785468075- Updated
- 2026-11-02
OSVCLSA-2026-1785468077 No score
TuxCare security update for protobufjs (7 CVEs)
TuxCare rebuilt protobufjs to address 7 CVEs. Fixed in 5.0.0-tuxcare.2.
- Record
CLSA-2026-1785468077- Updated
- 2026-11-02
OSVCLSA-2026-1791218903 No score
TuxCare security update for protobufjs (11 CVEs)
TuxCare rebuilt protobufjs to address 11 CVEs. Fixed in 7.4.0-tuxcare.1.
- Record
CLSA-2026-1791218903- 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-1792184156 No score
TuxCare security update for protobufjs (8 CVEs)
TuxCare rebuilt protobufjs to address 8 CVEs. Fixed in 6.11.3-tuxcare.2.
- Record
CLSA-2026-1792184156- Updated
- 2026-11-02
OSVCLSA-2026-1792490720 No score
TuxCare security update for protobufjs (12 CVEs)
TuxCare rebuilt protobufjs to address 12 CVEs. Fixed in 3.8.2-tuxcare.1.
- Record
CLSA-2026-1792490720- Updated
- 2026-11-02
OSVCLSA-2026-1792755967 No score
TuxCare security update for protobufjs (7 CVEs)
TuxCare rebuilt protobufjs to address 7 CVEs. Fixed in 7.5.4-tuxcare.3.
- Record
CLSA-2026-1792755967- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
protobufjsnpm |
through 7.5.5 | 7.5.6 |
protobufjsnpm |
8.0.0 to 8.0.1 | 8.0.2 |
protobufjsTuxCare:npm From an advisory covering 3 CVEs |
6.11.6-tuxcare.0 up to 6.11.6-tuxcare.3, plus listed versions 6.11.66.11.6-tuxcare.16.11.6-tuxcare.2 |
6.11.6-tuxcare.3 |
protobufjsTuxCare:npm From an advisory covering 8 CVEs |
2.2.1-tuxcare.0 up to 2.2.1-tuxcare.1, plus listed versions 2.2.1 |
2.2.1-tuxcare.1 |
protobufjsTuxCare:npm From an advisory covering 4 CVEs |
0.12.13-tuxcare.0 up to 0.12.13-tuxcare.1, plus listed versions 0.12.13 |
0.12.13-tuxcare.1 |
protobufjsTuxCare:npm From an advisory covering 11 CVEs |
6.8.8-tuxcare.0 up to 6.8.8-tuxcare.1, plus listed versions 6.8.8 |
6.8.8-tuxcare.1 |
protobufjsTuxCare:npm From an advisory covering 7 CVEs |
5.0.0-tuxcare.0 up to 5.0.0-tuxcare.2, plus listed versions 5.0.05.0.0-tuxcare.1 |
5.0.0-tuxcare.2 |
protobufjsTuxCare:npm From an advisory covering 11 CVEs |
7.4.0-tuxcare.0 up to 7.4.0-tuxcare.1, plus listed versions 7.4.0 |
7.4.0-tuxcare.1 |
protobufjsTuxCare: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 |
protobufjsTuxCare: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 |
Show 7 moreShow less
| Package | Affected | Fixed |
|---|---|---|
protobufjsTuxCare:npm From an advisory covering 8 CVEs |
6.11.3-tuxcare.0 up to 6.11.3-tuxcare.2, plus listed versions 6.11.36.11.3-tuxcare.1 |
6.11.3-tuxcare.2 |
protobufjsTuxCare:npm From an advisory covering 12 CVEs |
3.8.2-tuxcare.0 up to 3.8.2-tuxcare.1, plus listed versions 3.8.2 |
3.8.2-tuxcare.1 |
protobufjsTuxCare:npm From an advisory covering 7 CVEs |
7.5.4-tuxcare.0 up to 7.5.4-tuxcare.3, plus listed versions 7.5.47.5.4-tuxcare.17.5.4-tuxcare.2 |
7.5.4-tuxcare.3 |
protobufjsnpm |
before 7.5.6 | 7.5.6 |
protobufjsnpm |
8.0.0 up to 8.0.2 | 8.0.2 |
protobufjsRoot:npm |
before 6.11.2-aikido.1 | 6.11.2-aikido.17.4.0-aikido.37.5.5-aikido.37.5.4-aikido.48.0.1-aikido.46.11.4-aikido.26.11.6-aikido.27.5.5-aikido.47.5.4-aikido.58.0.1-aikido.57.4.0-aikido.48.0.1-aikido.67.5.4-aikido.67.4.0-aikido.57.4.0-aikido.66.11.4-aikido.36.11.6-aikido.36.11.6-aikido.46.11.4-aikido.46.11.6-aikido.57.5.5-aikido.58.0.1-aikido.77.5.4-aikido.77.4.0-aikido.77.5.5-aikido.68.0.1-aikido.87.5.4-aikido.86.11.4-aikido.57.5.5-aikido.78.0.1-aikido.96.11.6-aikido.67.5.5-aikido.87.5.3-aikido.17.2.0-aikido.37.3.2-aikido.2 |
@rootio/protobufjsRoot:npm |
before 7.4.0-root.io.2 | 7.4.0-root.io.27.5.5-root.io.18.0.1-root.io.17.5.4-root.io.28.0.1-root.io.27.5.4-root.io.37.5.5-root.io.28.0.1-root.io.36.11.4-root.io.16.11.6-root.io.16.11.2-root.io.17.4.0-root.io.37.5.5-root.io.37.5.4-root.io.48.0.1-root.io.46.11.4-root.io.26.11.6-root.io.27.5.5-root.io.47.5.4-root.io.58.0.1-root.io.57.4.0-root.io.48.0.1-root.io.67.5.4-root.io.67.4.0-root.io.57.4.0-root.io.66.11.4-root.io.36.11.6-root.io.36.11.6-root.io.46.11.4-root.io.46.11.6-root.io.57.5.5-root.io.58.0.1-root.io.77.5.4-root.io.77.4.0-root.io.77.5.5-root.io.68.0.1-root.io.87.5.4-root.io.86.11.4-root.io.57.5.5-root.io.78.0.1-root.io.96.11.6-root.io.67.5.5-root.io.87.5.3-root.io.17.2.0-root.io.37.3.2-root.io.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-44291 is a high vulnerability (CVSS 8.1) in Protobufjs Project Protobufjs, published May 12, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.50%, the 43rd percentile. Fixed in protobufjs 7.5.6.
References
github.com/protobufjs/protobuf.js/security/advisories/GHSA-75px-5xx7-5xc7
github.com/protobufjs/protobuf.js/releases/tag/protobufjs-v7.5.6
github.com/protobufjs/protobuf.js/releases/tag/protobufjs-v8.0.2
nvd.nist.gov/vuln/detail/CVE-2026-44291
github.com/advisories/GHSA-75px-5xx7-5xc7
github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44291.json
github.com/protobufjs/protobuf.js