T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:107
- Finding
- Unpinned and Inconsistently Identified External Skill Dependency## Vulnerability Details **File Location**: `SKILL.md:107-115`, with related package identity and dependency declarations in `package.json:2-15` and `metadata.json:87-90` **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:107-115`: ```markdown ## 🚀 快速开始 ```bash # 安装 clawhub install self-improving-skill # 启动自进化循环 self-improving-skill start --skill="skill-name" --interval="17m" ``` ``` `package.json:2-15`: ```json "name": "auto-improver-pro", "version": "1.0.0", "description": "Auto-improving AI skill that learns from every execution", "main": "src/index.js", "scripts": { "test": "jest", "start": "node src/index.js" }, "keywords": ["self-improvement", "learning", "automation", "feedback"], "author": "pagoda111king", "license": "MIT", "clawhub": { "slug": "auto-improver-pagoda", "name": "Self-Improving Skill", ``` `metadata.json:87-90`: ```json "dependencies": [ "skill-evolver" ], ``` ### Technical Analysis The quick-start instructions install `self-improving-skill`, while the package manifest identifies the project as `auto-improver-pro` and assigns it the ClawHub slug `auto-improver-pagoda`. The separate `skill-evolver` dependency is also declared without a version, source, or integrity digest. None of these external components is pinned to an immutable version or cryptographic integrity value. The repository contains no implementation against which the installed package can be compared: `package.json` references `src/index.js`, but the supplied project structure contains no `src` directory. As a result, the reviewed artifact does not establish the identity or contents of the executable code that the documented installation command would retrieve. This creates a supply-chain risk involving dependency confusion, package-name ambiguity, registry compromise, or mutable upstream releases. The risk is amplified ...[truncated 1945 chars]
- Remediation
- ## Remediation Suggestions 1. Use one canonical identifier consistently across `SKILL.md`, `package.json`, and `metadata.json`. 2. Pin every external skill and dependency to an exact, reviewed version rather than resolving a mutable latest release. 3. Record the trusted registry or repository URL and verify publisher ownership before installation. 4. Publish and verify cryptographic integrity hashes or signed release attestations for installed artifacts. 5. Include the actual implementation, including `src/index.js`, in the auditable package. 6. Add a dependency lockfile and enforce frozen or immutable dependency resolution in installation and CI workflows. 7. Remove undeclared or unused dependencies, or formally declare their versions, sources, integrity values, and purpose. 8. Apply least privilege: do not grant `Write`, `Bash`, or `Exec` unless required for a specific operation. 9. Restrict writes to an explicitly selected target-skill directory and execute commands inside a sandbox with network and filesystem controls. 10. Require explicit user review and confirmation before applying generated modifications to another skill. 11. Add installation-time validation that rejects package identifiers, versions, or integrity digests that differ from the audited manifest.
