T08 · Insecure Dependencies
- Location
SKILL.md:21- Finding
Unauditable Dependency Installation and Global CLI Registration
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 21–24; related instructions insetup.json, lines 26–29
Vulnerability Type: Insecure dependency and installation workflow
Risk Level: MediumComplete Code Snippet:
markdown ## Setup (First Time Only) Check `setup.json` in this directory. If `setupComplete: false`: ```bash npm install # Install dependencies npm link # Create global 'browser' commandtext Related setup configuration: ```json "setupInstructions": [ "1. Run: npm install (this will automatically build TypeScript)", "2. Run: npm link (this creates the global 'browser' command)", "3. (RECOMMENDED) Export ANTHROPIC_API_KEY: export ANTHROPIC_API_KEY='your-api-key-here' (check if already exported)", " OR alternatively create .env file: cp .env.example .env and edit it to add your API key",Technical Analysis
The Skill directs the Agent to run
npm installand then register a globally accessiblebrowsercommand withnpm link. However, the audited artifact contains nopackage.json, package lockfile, TypeScript source files, build configuration, or.env.example. The implementation claimed inREFERENCE.md, includingsrc/cli.ts, is also absent.As a result, the audit cannot determine:
- Which packages and versions would be installed.
- Whether npm lifecycle hooks such as
preinstall,install,postinstall, orpreparewould execute. - Which executable would be exposed globally as
browser. - Whether the executable safely handles API keys, cookies, screenshots, downloads, and browsing data.
- Whether installed dependencies are integrity-pinned and reproducible.
Running
npm installcan execute package lifecycle scripts with the invoking user's privileges. Runningnpm linkthen modifies the user's global npm command environment so subsequent legitimate-lookingbrowsercalls resolve to the linked, unaudited implemen ...[truncated 1884 chars]- Remediation
View remediation
Remediation Suggestions
- Include all referenced implementation and installation files in the reviewed package:
package.json- An integrity-locked lockfile
src/cli.tsand all other source files- Build configuration
.env.example- Relevant tests
- Pin exact dependency versions and integrity hashes rather than accepting unbounded or floating versions.
- Review and minimize npm lifecycle scripts. Disable them during installation where feasible with
npm install --ignore-scripts, then run only a separately reviewed build step. - Prefer a project-local executable invoked through an explicit trusted path instead of
npm link. - Require explicit user approval before installing dependencies or modifying globally resolved commands.
- Verify the executable target declared in the package's
binfield before registration. - Run installation and browser automation in a sandbox with restricted filesystem, environment-variable, and network access.
- Use an isolated, nonpersistent browser profile for sensitive operations and apply URL or network allowlists to block unintended access to localhost and internal services.
- Ensure
.envfiles, browser profiles, screenshots, and downloads have restrictive permissions and are excluded from source control. - Add automated dependency scanning, provenance verification, and reproducible-build checks before distribution.
- Include all referenced implementation and installation files in the reviewed package:
