T08 · Insecure Dependencies
- Location
SKILL.md:51- Finding
Unpinned External Application and Dependency Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 51-54;references/setup.md, lines 10-13
Vulnerability Type: Unverified, mutable third-party source and dependency execution
Risk Level: MediumAffected code in
SKILL.md(lines 51-54):bash git clone https://github.com/kk43994/kkclaw.git cd kkclaw npm install npm startAffected code in
references/setup.md(lines 10-13):bash git clone https://github.com/kk43994/kkclaw.git cd kkclaw npm install npm startTechnical Analysis
The installation instructions clone the mutable default branch of an external GitHub repository and immediately install and execute its contents. No reviewed commit hash or signed release is pinned, and the documentation provides no checksum, signature verification, lockfile enforcement, or dependency validation procedure.
Running
npm installcan execute lifecycle scripts from the root project or its transitive packages. Runningnpm startthen executes application code obtained from the external repository. Consequently, the effective code executed by a user can change after this Skill has been audited. The executable source code and dependency manifests are not included in the audited artifact, so their safety cannot be established from the available files.This is an insecure supply-chain pattern rather than evidence that the referenced repository is currently malicious.
Attack Path
- An attacker compromises the referenced GitHub repository, a maintainer account, or one of the application's dependencies.
- The attacker adds malicious code to the mutable default branch or introduces a malicious package or lifecycle script into the dependency graph.
- A user follows the documented commands and clones the altered repository.
npm installexecutes an attacker-controlled lifecycle script, or installs a malicious dependency.- Alternatively,
npm startexecutes the altere ...[truncated 829 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the repository to a specifically reviewed commit hash or cryptographically signed release rather than cloning and executing the mutable default branch.
- Include the executable source,
package.json, and lockfile in the audited Skill artifact so the complete installation path can be reviewed. - Commit a trusted lockfile and use
npm ciinstead ofnpm installto enforce the resolved dependency graph. - Publish SHA-256 checksums and cryptographic signatures for release installers, and document explicit verification commands.
- Review package lifecycle scripts and use
npm ci --ignore-scriptswhere lifecycle scripts are not required. If scripts are required, document and audit each one before execution. - Add automated dependency scanning, provenance checks, and lockfile integrity validation to the release process.
- Recommend installation and execution under a dedicated, least-privileged account without unnecessary access to unrelated credentials or files.
- Pin documentation examples to an immutable version and provide a controlled update procedure for moving to newer reviewed versions.
