T08 · Insecure Dependencies
- Location
SKILL.md:13- Finding
Unpinned Global npm Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 13-33
Vulnerability Type: Unpinned and globally installed third-party dependency
Risk Level: MediumThe installation instructions conflict with the fixed dependency metadata. Although the metadata identifies
ccfrank@4.5.5and supplies an integrity hash, the documented command globally installs the latest version available from the registry without validating that hash.yaml install: method: global-npm lockVersion: false allowGlobalInstall: true execution: command: npx args: - --no-install - ccfrank --- # CCFrank 查询会议/期刊的 CCF 等级(A/B/C/E/P/none)。 ## 安装配置(MCP) 全局安装 CLI(安装命令不限制版本): ```bash npm install -g ccfrankTechnical Analysis
The command
npm install -g ccfrankdoes not constrain the installed package to the reviewed version4.5.5. Consequently, it resolves the package version at installation time and may install a newer artifact whose code and integrity differ from the version declared in the Skill metadata.Setting
lockVersion: falseconfirms that installation is not required to honor the declared version. The global installation scope also increases exposure: npm lifecycle scripts and package binaries execute with the permissions of the user running npm and are installed into shared user-level or system-level locations. The subsequentnpx --no-install ccfrankcommand trusts and executes whichever matching binary is available in the relevant npm environment.This is a supply-chain weakness rather than evidence that the currently named package is malicious.
Attack Path
- An attacker compromises the npm publisher account, package distribution process, or a future
ccfrankrelease. - The attacker publishes a newer package version containing a malicious lifecycle script or CLI implementation.
- A user follows the Skill instructions and runs `npm install -g c ...[truncated 1019 chars]
- An attacker compromises the npm publisher account, package distribution process, or a future
- Remediation
View remediation
Remediation Suggestions
- Pin the documented installation command to the reviewed version:
bash npm install -g ccfrank@4.5.5 - Set
lockVersion: trueand ensure the installation system enforces the metadata version rather than treating it as informational. - Validate the downloaded package against the declared SHA-512 integrity value before execution.
- Prefer a project-local, lockfile-controlled installation instead of a global installation:
bash npm install --save-exact ccfrank@4.5.5 - Invoke the exact local binary from the locked dependency tree rather than relying on global command resolution.
- Disable npm lifecycle scripts during installation when the package does not require them, and review any required scripts before enabling them.
- Run the MCP server under a dedicated, least-privileged account with restricted filesystem and network access.
- Pin the documented installation command to the reviewed version:
