T08 · Insecure Dependencies
Warning
- Location
- references/conventional-commits.md:233
- Finding
- Unpinned npx Commands Can Download and Execute Mutable Third-Party Code## Vulnerability Details **File Location**: `references/conventional-commits.md`, lines 233–240 **Vulnerability Type**: Unpinned third-party package execution **Risk Level**: Medium The documentation recommends the following commands: ```bash # Use conventional-changelog npx conventional-changelog -p angular -i CHANGELOG.md -s # Use semantic-release npx semantic-release ``` ### Technical Analysis The documented `npx` commands do not specify exact package versions and are not tied to reviewed dependencies in `package.json` or a committed lockfile. If either package is unavailable locally, `npx` may retrieve it and its transitive dependencies from the npm registry before executing the resolved package binary. This creates a supply-chain trust boundary that is not apparent from the Skill's otherwise local and dependency-free operation. The effective code executed by these commands can change after the Skill has been reviewed. Risk may arise from a compromised package maintainer or registry account, a malicious or compromised transitive dependency, or an unsafe future package release. ### Attack Path 1. A user follows one of the tool-integration examples in the reference documentation. 2. The specified package is not installed in the project. 3. `npx` resolves the unpinned package and dependencies through the configured npm registry. 4. A compromised or malicious package version is downloaded. 5. Package lifecycle logic or the resolved command executes with the invoking user's privileges. 6. The executed code can access resources available to that user and process, including repository files, writable local files, environment variables, and credentials exposed to the development environment. Exploitation requires compromise or malicious modification of a resolved package, dependency, or configured registry. The audited Skill does not itself contain such a payload. ### Impact Assessment Successfully compromised ...[truncated 412 chars]
- Remediation
- ## Remediation Suggestions 1. Add reviewed, exact versions of `conventional-changelog` and `semantic-release` to project `devDependencies`. 2. Commit the generated lockfile and use a lockfile-enforcing installation workflow such as `npm ci`. 3. Invoke the lockfile-resolved local binaries through package scripts rather than allowing `npx` to resolve unspecified remote versions. 4. If `npx` must remain in the documentation, specify an exact reviewed package version and clearly warn that the command may download and execute third-party code. 5. Use a trusted registry, dependency integrity verification, automated dependency scanning, and controlled updates. 6. Run release tooling with least privilege and avoid exposing unrelated secrets or broadly privileged credentials to the process.
