{"id":"CVE-2026-54271","aliases":["GHSA-pr59-h9ph-3fr8"],"title":"protobufjs-cli: Code injection in pbjs static output from crafted JSON descriptor names","summary":"protobufjs-cli: Code injection in pbjs static output from crafted JSON descriptor names","severity":"high","cvss":8.2,"cwe":["CWE-94"],"vendor":"protobufjs-cli","product":"protobufjs-cli","ecosystem":"npm","affected":["protobufjs-cli <= 1.3.1","protobufjs-cli >= 2.0.0, <= 2.4.2"],"patched":["protobufjs-cli 1.3.2","protobufjs-cli 2.5.0"],"published":"2026-06-15","updated":"2026-06-15","source":"GHSA","sourceUrl":"https://github.com/advisories/GHSA-pr59-h9ph-3fr8","references":[{"url":"https://github.com/protobufjs/protobuf.js/security/advisories/GHSA-pr59-h9ph-3fr8"},{"url":"https://github.com/advisories/GHSA-pr59-h9ph-3fr8"}],"tags":["ghsa","npm"],"epss":0.00303,"epssPercentile":0.2314,"ingestedAt":"2026-07-07T15:41:58.666Z","slug":"CVE-2026-54271","body":"## Overview\n\n## 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.\n\n## Affected packages\n\n- `protobufjs-cli <= 1.3.1`\n- `protobufjs-cli >= 2.0.0, <= 2.4.2`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `protobufjs-cli 1.3.2`\n- `protobufjs-cli 2.5.0`","depth":"twilight","depthScore":45,"depthScoreParts":{"impact":45.1,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}