T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:14
- Finding
- Unpinned Third-Party Installation and Execution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:14-16`, `SKILL.md:22-25`, and `CONTRIBUTING.md:24` **Vulnerability Type**: Mutable and unverified third-party dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:14-16`: ```bash npm install -g agent-browser agent-browser install agent-browser install --with-deps ``` `SKILL.md:22-25`: ```bash git clone https://github.com/vercel-labs/agent-browser cd agent-browser pnpm install pnpm build agent-browser install ``` `CONTRIBUTING.md:24`: ```bash npm install -g agent-browser@latest ``` ### Technical Analysis The documented installation procedures do not pin the npm package to an audited version, pin the Git repository to a specific commit, or verify downloaded artifacts using an integrity digest or trusted signature. The global npm installation and explicit use of `@latest` resolve package content at installation time. Consequently, the package that users execute can differ from the package available when this Skill was audited. npm package installation may also execute package lifecycle scripts under the installing user's account. The source installation procedure clones the moving default branch and invokes `pnpm install` without demonstrating a committed, verified lockfile or an integrity-verification process. It then builds and executes the resulting CLI. This creates supply-chain exposure to changes in the upstream repository and its transitive dependencies. No evidence indicates that the current upstream package is malicious. The vulnerability is the trust placed in mutable and insufficiently verified third-party content. ### Attack Path 1. An attacker compromises the upstream npm publisher account, source repository, release process, package registry, or a transitive dependency. 2. The attacker publishes a malicious package version, modifies the moving default branch, or introduces a malicious dependency or lifecycle script. 3. A user follows the documented `npm install ...[truncated 1271 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the npm dependency to a specific audited version rather than installing an unqualified package or `@latest`: ```bash npm install -g agent-browser@<audited-version> ``` 2. Publish and verify the expected npm integrity digest or a cryptographically signed release before installation. 3. Pin source installations to a reviewed full commit hash: ```bash git clone https://github.com/vercel-labs/agent-browser cd agent-browser git checkout --detach <reviewed-full-commit-hash> ``` 4. Require a committed lockfile and use a frozen-lockfile installation mode so dependency resolution cannot silently change: ```bash pnpm install --frozen-lockfile ``` 5. Avoid global installation where practical. Prefer a project-local, containerized, or otherwise sandboxed installation with minimal filesystem and network permissions. 6. Do not instruct users to install `@latest` as a troubleshooting step. Document a tested compatibility matrix and update the pinned version only after security review. 7. Document the exact system changes and privilege requirements of `agent-browser install --with-deps`. Explicitly discourage execution as root or through `sudo` unless strictly required and independently reviewed. 8. Add automated dependency provenance, vulnerability, and lockfile-integrity checks to the release process. ]]>
