T08 · Insecure Dependencies
- Location
skill.json:24- Finding
Unpinned External npm Package Installed Globally
- Content
View full analysis
Vulnerability Details
File Location:
skill.json:24-26andskill.json:42-49
Vulnerability Type: Unpinned third-party dependency and unsafe global installation
Risk Level: MediumVulnerable Code
json "install": { "npm": "npm install -g @thesethrose/marketing-mode" },json "install": [ { "id": "npm-pkg", "kind": "npm", "package": "@thesethrose/marketing-mode", "label": "Install Marketing Mode (npm)" } ]Technical Analysis
The configuration directs users or the skill manager to install
@thesethrose/marketing-modewithout an exact version or integrity constraint. npm therefore resolves a mutable package release, normally the package's current distribution tag. The implementation of that external package is not included in the audited project and could not be inspected.npm packages can define lifecycle scripts that execute during installation. If the package publisher account, registry entry, or release pipeline is compromised, a malicious future version could run code with the permissions of the user performing the installation. The
-goption expands the installation's scope to the user's global npm environment.This is a supply-chain exposure rather than evidence that the current external package is malicious. The project also documents
clawdhub install marketing-modeinREADME.md:8, resulting in inconsistent installation mechanisms and trust boundaries.Attack Path
- An attacker compromises the npm publisher account, package release process, or another component controlling
@thesethrose/marketing-mode. - The attacker publishes a malicious version and makes it the version resolved by the package's default distribution tag.
- A user or automated skill installer processes
skill.jsonand executesnpm install -g @thesethrose/marketing-mode. - npm retrieves the unreviewed release and may execute its installation lifecycle ...[truncated 839 chars]
- An attacker compromises the npm publisher account, package release process, or another component controlling
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to an exact reviewed version, for example
@thesethrose/marketing-mode@1.0.0, rather than resolving a mutable distribution tag. - Verify the package using a trusted lockfile and registry-provided integrity hash.
- Avoid global installation where possible. Install into an isolated, least-privileged project directory or sandbox.
- Disable npm lifecycle scripts during installation with
--ignore-scriptsunless they are explicitly required and have been reviewed. - Include the package source in the repository or reference an immutable source revision so the installed implementation can be audited alongside the skill.
- Use one consistent, documented installation mechanism and clearly define its source and trust boundary.
- Add automated dependency provenance, signature, vulnerability, and publisher-change checks before releases are accepted.
- Pin the dependency to an exact reviewed version, for example
