T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:20
- Finding
- Unpinned Third-Party Package and Source Installation## Vulnerability Details **File Location**: `SKILL.md:20-35`, `CONTRIBUTING.md:21-25`, `skills/agent-browser-juan/SKILL.md:15-30`, and `skills/agent-browser-juan/CONTRIBUTING.md:21-25` **Vulnerability Type**: Mutable and unverified third-party dependency installation **Risk Level**: Medium ### Vulnerable Code `SKILL.md:20-35`: ```bash ### npm recommended ```bash npm install -g agent-browser agent-browser install agent-browser install --with-deps ``` ### From Source ```bash git clone https://github.com/vercel-labs/agent-browser cd agent-browser pnpm install pnpm build agent-browser install ``` ``` The same installation workflow is duplicated in `skills/agent-browser-juan/SKILL.md:15-30`. `CONTRIBUTING.md:21-25`: ```bash 1. Install the latest version ```bash npm install -g agent-browser@latest ``` ``` The `@latest` installation instruction is duplicated in `skills/agent-browser-juan/CONTRIBUTING.md:21-25`. ### Technical Analysis The documented installation procedures retrieve and execute mutable third-party content without pinning it to a reviewed package version, source commit, or integrity hash. `npm install -g agent-browser` implicitly resolves the current registry version, while `npm install -g agent-browser@latest` explicitly follows a mutable distribution tag. npm installation can execute package lifecycle scripts with the privileges of the invoking user. Installing globally also places package executables and files into shared user-level or system-level locations. The source installation procedure clones the repository's current default branch rather than a reviewed commit or signed release tag. It then resolves dependencies through `pnpm install` and executes the upstream build. Consequently, the code executed by users can differ from the code that was available when this Skill was audited. Finally, `agent-browser install --with-deps` may download browser componen ...[truncated 2336 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the npm dependency to a specific audited version instead of resolving an implicit current version or `@latest`: ```bash npm install -g agent-browser@X.Y.Z ``` 2. Verify the selected release against a documented integrity hash, package signature, or trusted provenance attestation before installation. 3. Pin source installations to a reviewed commit hash: ```bash git clone https://github.com/vercel-labs/agent-browser cd agent-browser git checkout --detach VERIFIED_COMMIT_HASH ``` 4. Provide and enforce a committed lockfile for source builds. Use a frozen-lockfile installation mode so dependency resolution fails rather than silently updating: ```bash pnpm install --frozen-lockfile ``` 5. Review package lifecycle scripts and use script-disabled installation where compatible. If scripts are required, document exactly which scripts execute and why. 6. Avoid global installation when practical. Prefer an isolated container, dedicated virtual environment, or project-local installation with restricted filesystem and network access. 7. Separate browser installation from operating-system dependency installation. Explain that `--with-deps` can alter the host and require explicit user confirmation before invoking it. 8. Do not recommend installation with administrative privileges unless strictly necessary. If elevated installation is unavoidable, enumerate the exact packages and commands requiring elevation. 9. Keep the root and nested documentation copies synchronized so all installation paths use the same pinned and verified release. 10. Establish a dependency update process in which version changes, lockfile changes, checksums, and upstream release provenance are reviewed before the Skill documentation is updated.
