T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:9
- Finding
- Unpinned Third-Party npm Dependency## Vulnerability Details **File Location**: `SKILL.md`, lines 9–13 **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: openclaw: requires: bins: [] env: [] config: [] install: - kind: node package: "@auteng/docs" bins: [] ``` A second installation instruction appears at lines 78–85: ```markdown ### Using `@auteng/docs` (TypeScript) ```bash npm install @auteng/docs ``` ```typescript import { publish } from '@auteng/docs'; ``` ``` ### Technical Analysis The skill installs `@auteng/docs` without specifying an exact version, lockfile, or package integrity hash. Consequently, installation resolves the package version selected by the npm registry at installation time rather than a release reviewed together with this skill. Third-party npm packages can contain executable code and lifecycle scripts. If the package publisher, publishing credentials, or distribution channel is compromised, a malicious release could run code during installation or when the imported API is used. The dependency's implementation is not included in the audited project, so its actual runtime behavior and the documentation's claim that it never handles private keys could not be independently verified. ### Attack Path 1. An attacker compromises the `@auteng/docs` publisher account, release process, or another relevant supply-chain component. 2. The attacker publishes a malicious package version under the same package name. 3. A user installs the skill while the malicious release is selected by npm because no exact version is specified. 4. npm downloads the changed package and may execute malicious lifecycle scripts during installation. 5. Alternatively, malicious behavior runs when the skill imports and invokes the package. 6. The payload acts with the privileges and environmental access of the user or agent process performing the installation or invocation. This is a co ...[truncated 785 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `@auteng/docs` to a reviewed, exact version rather than relying on the registry's current default release. 2. Commit a lockfile containing the resolved version and integrity metadata where the skill packaging format permits it. 3. Verify package provenance, publisher identity, release signatures, and npm integrity data before installation. 4. Audit the exact dependency release and its transitive dependencies before deployment. 5. Disable npm lifecycle scripts during installation where compatible, for example by using `--ignore-scripts`. 6. Run installation and execution in a sandbox with minimum filesystem, network, environment-variable, and wallet access. 7. Avoid exposing secrets or unrestricted signing capabilities to the dependency process. 8. Consider vendoring the reviewed implementation or using an internally controlled package mirror with an allowlisted digest.
