T08 · Insecure Dependencies
- Location
references/conventional-commits.md:233- Finding
Unpinned npx Commands Can Download and Execute Mutable Third-Party Code
- Content
View full analysis
Vulnerability Details
File Location:
references/conventional-commits.md, lines 233–240
Vulnerability Type: Unpinned third-party package execution
Risk Level: MediumThe documentation recommends the following commands:
bash # Use conventional-changelog npx conventional-changelog -p angular -i CHANGELOG.md -s # Use semantic-release npx semantic-releaseTechnical Analysis
The documented
npxcommands do not specify exact package versions and are not tied to reviewed dependencies inpackage.jsonor a committed lockfile. If either package is unavailable locally,npxmay 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
- A user follows one of the tool-integration examples in the reference documentation.
- The specified package is not installed in the project.
npxresolves the unpinned package and dependencies through the configured npm registry.- A compromised or malicious package version is downloaded.
- Package lifecycle logic or the resolved command executes with the invoking user's privileges.
- 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
View remediation
Remediation Suggestions
- Add reviewed, exact versions of
conventional-changelogandsemantic-releaseto projectdevDependencies. - Commit the generated lockfile and use a lockfile-enforcing installation workflow such as
npm ci. - Invoke the lockfile-resolved local binaries through package scripts rather than allowing
npxto resolve unspecified remote versions. - If
npxmust remain in the documentation, specify an exact reviewed package version and clearly warn that the command may download and execute third-party code. - Use a trusted registry, dependency integrity verification, automated dependency scanning, and controlled updates.
- Run release tooling with least privilege and avoid exposing unrelated secrets or broadly privileged credentials to the process.
- Add reviewed, exact versions of
