T08 · Insecure Dependencies
Warning
- Location
- skill.md:45
- Finding
- Unpinned External Package and Source Installation## Vulnerability Details **File Location**: `skill.md:45-65`; duplicated in `readme.md:51-63` **Vulnerability Type**: Unpinned third-party dependency installation **Risk Level**: Medium ### Vulnerable Code `skill.md:45-65`: ```bash npm install -g openclaw-audit-trail npm install openclaw-audit-trail clawhub install openclaw-audit-trail git clone https://github.com/ZhenRobotics/openclaw-audit-trail.git cd openclaw-audit-trail npm install npm link ``` The same installation pattern appears in `readme.md:51-63`. ### Technical Analysis The documented commands install mutable third-party content without pinning an exact package version, source commit, integrity hash, or cryptographic signature. The supplied project contains only documentation and does not include the package implementation, dependency manifest, lockfile, or source code needed to verify what these commands will execute. An npm installation may execute package lifecycle scripts. Global installation with `npm install -g` exposes package executables broadly within the user's environment, while `npm link` links the checked-out package into the active Node.js environment. The Git installation procedure checks out the repository's moving default branch instead of a reviewed commit. Consequently, the content executed by a user can differ from the content available when this Skill was audited. A compromised registry account, repository, release process, or transitive dependency could introduce malicious code after review. ### Attack Path 1. An attacker compromises the npm or ClawHub publisher account, the Git repository, the release pipeline, or a transitive dependency. 2. The attacker publishes malicious content under the expected package name or adds it to the repository's mutable default branch. 3. A user follows one of the documented unpinned installation procedures. 4. The package manager retrieves the attacker-controlled version rather than a p ...[truncated 1214 chars]
- Remediation
- ## Remediation Suggestions 1. Pin npm and ClawHub installations to an exact reviewed version rather than resolving the latest release. 2. Pin source installations to a full reviewed Git commit hash or signed release tag. 3. Publish and verify cryptographic checksums or signatures for release artifacts. 4. Include the implementation, package manifest, dependency lockfile, and tests in the auditable Skill artifact. 5. Use a reproducible lockfile-based installation such as `npm ci` for source builds. 6. Initially inspect dependencies with lifecycle scripts disabled, such as through `npm install --ignore-scripts`, and enable scripts only after review. 7. Avoid global installation and `npm link` where possible. Prefer a dedicated, least-privileged environment or container. 8. Audit direct and transitive dependencies, enforce provenance verification, and monitor publisher ownership and release changes. 9. Document the exact verified artifact version, commit, checksum, and expected executable behavior.
