Executive brief
A vulnerability exists in the Text Format extension of the protobufjs library, which is used to handle data serialization. An attacker can provide specially crafted input that modifies the internal structure of data objects created by the library. Depending on how an application uses this data, it could lead to unexpected behavior or security bypasses within the application's logic.
Technical details
The vulnerability is a prototype pollution variant (CWE-1321) specifically affecting the `protobufjs/ext/textformat` component. When parsing Text Format input, string-keyed map entries are processed using ordinary property assignment without sufficient validation. By providing a key named `__proto__`, an attacker can mutate the prototype of the specific map object being returned. This is a per-object mutation rather than global prototype pollution. Exploitation requires the application to parse untrusted Text Format input and subsequently rely on inherited properties (e.g., using `in` operators or truthiness checks) in a security-sensitive manner. The issue is fixed in version 8.6.5.
Affected products
- protobufjs protobufjs >= 8.2.0, <= 8.6.4
Timeline
- 2026-07-04: disclosed: Initial disclosure by reporter Faze-up
- 2026-07-04: patched: Version 8.6.5 released
- 2026-07-20: advisory: GitHub Advisory published