{"id":"GHSA-f84p-cvgm-xgjj","summary":"protobuf.js is Vulnerable to OS Command Injection in the CLI","details":"## Summary\n\n`pbts` invoked JSDoc by building a shell command string from input file paths and executing it through `child_process.exec`. File paths containing shell metacharacters could therefore be interpreted by the shell instead of being passed to JSDoc as plain arguments.\n\n## Impact\n\nAn attacker who can control file names or paths passed to `pbts` may be able to execute arbitrary shell commands with the privileges of the process running `pbts`.\n\nThis affects the protobufjs CLI tooling path. The protobufjs runtime APIs for encoding, decoding, parsing, and loading protobuf messages are not directly affected by this issue.\n\n## Preconditions\n\n- The application or user must invoke `pbts` on file paths influenced by an attacker.\n- The attacker must be able to supply or create a path containing shell-significant characters.\n- The vulnerable `pbts` version must execute the generated JSDoc command through a shell.\n\n## Workarounds\n\nDo not run affected versions of `pbts` on attacker-controlled file names or paths. If this cannot be avoided, sanitize or rename input files before invoking `pbts`, or run the CLI in an isolated environment with minimal privileges.","aliases":["CVE-2026-42290"],"modified":"2026-07-17T21:07:17.619423619Z","published":"2026-05-12T14:59:45Z","database_specific":{"severity":"HIGH","github_reviewed":true,"github_reviewed_at":"2026-05-12T14:59:45Z","nvd_published_at":"2026-05-13T16:16:47Z","cwe_ids":["CWE-78"]},"references":[{"type":"WEB","url":"https://github.com/protobufjs/protobuf.js/security/advisories/GHSA-f84p-cvgm-xgjj"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-42290"},{"type":"PACKAGE","url":"https://github.com/protobufjs/protobuf.js"},{"type":"WEB","url":"https://github.com/protobufjs/protobuf.js/releases/tag/protobufjs-cli-v1.2.1"},{"type":"WEB","url":"https://github.com/protobufjs/protobuf.js/releases/tag/protobufjs-cli-v2.0.2"}],"affected":[{"package":{"name":"protobufjs-cli","ecosystem":"npm","purl":"pkg:npm/protobufjs-cli"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.2.1"}]}],"database_specific":{"last_known_affected_version_range":"\u003c= 1.2.0","source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-f84p-cvgm-xgjj/GHSA-f84p-cvgm-xgjj.json"}},{"package":{"name":"protobufjs-cli","ecosystem":"npm","purl":"pkg:npm/protobufjs-cli"},"ranges":[{"type":"SEMVER","events":[{"introduced":"2.0.0"},{"fixed":"2.0.2"}]}],"database_specific":{"last_known_affected_version_range":"\u003c= 2.0.1","source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-f84p-cvgm-xgjj/GHSA-f84p-cvgm-xgjj.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"}]}