{"id":"GHSA-pr59-h9ph-3fr8","revision":"cccac9c3f9c74f3b9f4b4039e7eb19ee","records":[{"revision":"cccac9c3f9c74f3b9f4b4039e7eb19ee","observedAt":"2026-10-24T13:17:17.793+00:00","statement":{"source":"osv","id":"GHSA-pr59-h9ph-3fr8","aliases":["CVE-2026-54271"],"title":"protobufjs-cli: Code injection in pbjs static output from crafted JSON descriptor names","description":"## Summary\n\nA previous fix for unsafe name handling in `pbjs` static / static-module code generation was incomplete. Affected versions of `protobufjs-cli` could still emit unsafe JavaScript references when generating static output from crafted JSON descriptor input. The common case of parsing schemas from `.proto` files is not affected.\n\nThis is a bypass of GHSA-6r35-46g8-jcw9 / CVE-2026-44295.\n\n## Impact\n\nAn attacker who can provide or influence pre-parsed JSON descriptors passed to `pbjs` static code generation may be able to cause generated JavaScript output to contain attacker-controlled code.\n\nThe injected code may execute if the generated file is later executed or imported and an affected generated API path is invoked.\n\n## Preconditions\n\n* The application or build process must run `pbjs` static code generation on a pre-parsed JSON descriptor influenced by an attacker.\n* The generated JavaScript file must subsequently be executed or imported.\n* An affected generated API path must be invoked.\n\n## Workarounds\n\nDo not run affected versions of `pbjs` static or static-module generation on untrusted JSON descriptors. If untrusted JSON descriptors must be accepted, validate descriptor-derived names before code generation and reject names that could not have been produced by parsing a valid `.proto` file. Running code generation in an isolated environment can reduce impact.","state":0,"publishedAt":"2026-06-15T20:13:54+00:00","modifiedAt":"2026-09-10T03:50:50.0919686+00:00","affected":[{"ecosystem":"npm","name":"protobufjs-cli","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"1.3.2"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"npm","name":"protobufjs-cli","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"2.0.0"},{"kind":"fixed","version":"2.5.0"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V3","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:L","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"HIGH"}],"references":["https://github.com/protobufjs/protobuf.js/security/advisories/GHSA-pr59-h9ph-3fr8","https://nvd.nist.gov/vuln/detail/CVE-2026-54271","https://github.com/protobufjs/protobuf.js"],"sourceUrl":"https://github.com/advisories/GHSA-pr59-h9ph-3fr8","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-pr59-h9ph-3fr8","identifiers":["GHSA-pr59-h9ph-3fr8","CVE-2026-54271"]},"retained":false,"historicalAffected":[]}],"coverage":[]}