Description
protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.5.6 and 8.0.2, protobufjs includes a minimal UTF-8 decoder that accepted overlong UTF-8 byte sequences and decoded them to their canonical characters instead of replacing them. An attacker who can provide protobuf binary data decoded through the affected UTF-8 path may be able to bypass application-level checks that inspect raw bytes before protobuf string decoding. For example, bytes that do not contain certain ASCII characters could decode to strings containing those characters. This vulnerability is fixed in 7.5.6 and 8.0.2.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| protobufjs | protobuf.js | < 7.5.6, >= 8.0.0, < 8.0.2 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Wolfi
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Wolfi rolling | kubeflow-centraldashboard | 1.10.0-r21 | — |
| Wolfi rolling | pulumi-language-nodejs | 3.237.0-r1 | — |
| Wolfi rolling | renovate | 43.170.15-r2 | — |
| Wolfi rolling | vitess-23 | 23.0.4-r5 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| npm | @protobufjs/utf8 | < 1.1.1 | 1.1.1 | GHSA-q6x5-8v7m-xcrf |
| npm | protobufjs | < 7.5.6 | 7.5.6 | GHSA-q6x5-8v7m-xcrf |
| npm | protobufjs | >= 8.0.0, < 8.0.2 | 8.0.2 | GHSA-q6x5-8v7m-xcrf |