T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:21
- Finding
- Unpinned Third-Party Scanner Is Installed and Executed<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 11–27 and 54–60 **Vulnerability Type**: Unpinned external executable dependency **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: { "openclaw": { "requires": { "bins": ["shipcheck"] }, "install": [ { "id": "node", "kind": "node", "package": "@symbolstar/shipcheck", "bins": ["shipcheck"], "label": "Install shipcheck CLI (npm)", }, ], }, } ``` ```bash npm i -g @symbolstar/shipcheck # or one-shot npx -y @symbolstar/shipcheck ``` ### Technical Analysis The skill delegates its effective behavior to the external npm package `@symbolstar/shipcheck`, but neither the OpenClaw installation metadata nor the documented commands pin an exact package version or verify an integrity digest. The `npx -y` command automatically resolves, downloads, and executes the package without interactive confirmation. Consequently, the code executed by the skill can change after this skill file has been reviewed. The audited project contains no scanner source code, package lockfile, vendored executable, checksum, or provenance information with which to verify the external implementation. This is particularly sensitive because the package is intended to inspect repositories for credentials, personal information, internal network details, and other confidential content. Although no malicious behavior or data exfiltration was demonstrated in the audited artifact, a compromised package release, maintainer account, registry response, or transitive dependency could abuse this access. ### Attack Path 1. An attacker compromises the npm package, its maintainer account, or a dependency used by a future package release. 2. The attacker publishes a malicious version under the existing `@symbolstar/shipcheck` package name. 3. A user invokes the skill and follows the ...[truncated 1280 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `@symbolstar/shipcheck` to an exact, reviewed version in both the OpenClaw metadata and installation examples. 2. Replace the unversioned `npx -y @symbolstar/shipcheck` command with an exact version and avoid automatic, non-interactive execution for security-sensitive scanning. 3. Use a lockfile and verify npm integrity metadata or cryptographic checksums before execution. 4. Verify package provenance and signatures where supported by the package registry and deployment environment. 5. Include or vendor the scanner source in the reviewed artifact so its filesystem, process, and network behavior can be audited. 6. Document whether the scanner performs network requests or telemetry and provide an offline mode. 7. Execute the scanner with least privilege, restricted filesystem access, and blocked outbound network access where practical. 8. Periodically re-audit the pinned package and its transitive dependencies before upgrading. ]]>
