T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:16
- Finding
- Unpinned and Unverified Third-Party npm Dependency## Vulnerability Details **File Location**: `SKILL.md`, lines 16–18 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Vulnerable Code**: ```markdown **Installation**: ```bash npm install @clawhub/age-guard ``` ``` ### Technical Analysis The installation command retrieves `@clawhub/age-guard` from the configured npm registry without specifying an exact version. The audited project provides no lockfile, integrity hash, vendored implementation, source repository reference, or publisher verification that would allow users to confirm which code will be installed. Consequently, the dependency resolved at installation time can differ from the package version that existed when this Skill was reviewed. npm packages may also define lifecycle scripts that execute during installation. If the package, publisher account, registry namespace, or a future release is compromised, following the documented command could execute unreviewed code with the privileges of the user running npm. The project itself contains only `SKILL.md`; the dependency implementation was not present and therefore could not be audited. No evidence establishes that the current package is malicious, but the unpinned and unverifiable installation process creates a supply-chain exposure. ### Attack Path 1. An attacker gains control of the package, its publisher account, or an applicable registry resolution path, or publishes a compromised future release. 2. The attacker introduces malicious package code or an npm lifecycle script. 3. A user follows the installation command in `SKILL.md`. 4. npm resolves and downloads the attacker-controlled release because no exact version or integrity constraint is specified. 5. Malicious lifecycle code may execute during installation, or malicious library code may execute when the package is subsequently imported and used. ### Impact Assessment Malicious installation scripts or runtime package ...[truncated 677 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the dependency to a reviewed, exact version rather than allowing npm to resolve the latest release. 2. Include and maintain a lockfile containing registry resolution and integrity metadata. 3. Provide a verifiable link to the package's official source repository and document the expected publisher and package provenance. 4. Review the package source, transitive dependencies, and npm lifecycle scripts before recommending installation. 5. Use npm provenance and signature verification where supported, and enforce approved registries through project or organization configuration. 6. Consider installing with lifecycle scripts disabled during initial inspection, such as with `--ignore-scripts`, where compatible with the package's legitimate requirements. 7. Run the dependency with least privilege and isolate any processing of identity or biometric information. 8. Establish a dependency update process that requires security review before changing the pinned version or lockfile.
