T08 · Insecure Dependencies
- Location
SKILL.md:85- Finding
Unpinned Third-Party Package Is Installed and Trusted Globally
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 85–123
Vulnerability Type: Supply-chain exposure through an unpinned npm dependency
Risk Level: HighVulnerable Code
markdown ### 2. Install the CLI and the browser tool ```bash npm install -g @playwright/cli@0.1.13 websculpt@playwright/cliis the browser-automation dependency used during explore; install it together with the CLI.If the global install fails due to permissions (e.g. EACCES), do not use sudo — sudo does not exist on Windows, and a sudo install leaves root-owned files in the npm global directory, breaking every later npm operation with permission errors. Use the npx fallback instead: prefix every subsequent
websculptcommand withnpx -y websculpt@latestand everyplaywright-clicommand withnpx -y @playwright/cli@0.1.13(including skill install and status below).3. Install the lifecycle skills
bash websculpt skill install --globalThis command is idempotent; existing skills are skipped. A global install writes to
.claude/skills/,.codex/skills/, and.agents/skills/under the user's home directory — the host agent only needs to read one of them.text The installed content is subsequently trusted at lines 115–118: ```markdown 2. Read the corresponding installed skill file and strictly follow its protocol. Locate it by the scope reported by `skill status`: `installed global` means `.agents/skills/<skill-name>/SKILL.md` under the user's home directory (identical copies exist under `.claude/skills/` and `.codex/skills/`); `installed local` means the same path under the current project directory. 3. Within this session, whenever any websculpt skill's protocol calls for loading another websculpt skill (e.g. explore suggesting capture), likewise read that skill's installed SKILL.md file instead of relying on host triggering. 4. Do not ask the user to restart the session or restate the task; take over yourself.The update flow also r ...[truncated 2753 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
websculptto a specific, reviewed version in every installation and fallback command. Do not use@latest. - Verify package provenance and integrity before execution, such as through a trusted registry, npm provenance attestations, and expected package or tarball hashes.
- Replace automatic
npm update -g websculptwith an explicit upgrade process that reviews and approves a precise target version. - Where operationally possible, suppress npm lifecycle scripts during acquisition and only enable required scripts after review.
- Install into an isolated, least-privileged environment rather than the user's global npm environment.
- Require explicit user confirmation before global installation, updates, or writes to Agent skill directories.
- Stage generated lifecycle skills in a temporary review directory. Validate their content and file destinations before copying them into
.claude/skills,.codex/skills, or.agents/skills. - Do not automatically “strictly follow” newly generated instructions. Treat them as untrusted until their source, version, integrity, and contents have been verified.
- Record the installed version and hashes so later status checks can detect unauthorized or unexpected changes.
- Document a cleanup procedure that removes compromised package artifacts and generated skills from all three supported Agent directories.
- Pin
