T08 · Insecure Dependencies
- Location
SKILL.md:15- Finding
Unpinned and Unverified npm Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 15–18
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumComplete Code Snippet:
markdown **Installation**: ```bash npm install @clawhub/geo-shieldtext ### Technical Analysis The installation command references `@clawhub/geo-shield` without an exact version, lockfile, integrity hash, provenance information, or corresponding source code in the audited project. Consequently, installation resolves registry-controlled package content that may change independently after this skill has been reviewed. npm packages can define lifecycle scripts that execute during installation. Because the dependency implementation, transitive dependency tree, and lifecycle scripts are absent from the project, their behavior cannot be verified by this audit. This creates a supply-chain exposure if the package publisher account, package release process, registry resolution, or a transitive dependency is compromised. The documentation advertises processing of IP geolocation, VPN/proxy status, and Tor usage. However, the package's handling, transmission, and storage of this potentially sensitive network information cannot be assessed from the supplied files. ### Attack Path 1. A user follows the documented installation instruction. 2. npm resolves the current registry version of `@clawhub/geo-shield` and its transitive dependencies. 3. An attacker who has compromised a package publisher, release pipeline, or dependency publishes a malicious version. 4. npm downloads the altered package because no audited exact version or integrity-controlled lockfile is specified. 5. Malicious lifecycle code can execute during installation, or malicious runtime behavior can execute when the package is used. 6. The payload operates with the permissions and accessible environment of the user or process running npm. ### Impact Assessment Exploitation could perm ...[truncated 668 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a reviewed exact version rather than allowing npm to resolve a mutable release.
- Commit a package manifest and lockfile containing registry URLs and integrity metadata.
- Document the authoritative source repository and verify package provenance or registry signatures where available.
- Audit the package's source, lifecycle scripts, release artifacts, and complete transitive dependency tree before recommending installation.
- In automated environments, use deterministic installation such as
npm ciwith a reviewed lockfile. - Disable lifecycle scripts during initial inspection with
npm install --ignore-scripts, then explicitly permit only scripts that have been reviewed and are necessary. - Run installation and package execution with least privilege in an isolated environment without unnecessary credentials or host filesystem access.
- Document how IP addresses and detection results are collected, transmitted, retained, and protected, including any external services contacted by the package.
