T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:16
- Finding
- Unpinned Third-Party Package and Source Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 16-26; `CONTRIBUTING.md`, lines 15-18 **Vulnerability Type**: Unpinned and unverifiable third-party dependency installation **Risk Level**: Medium ### Vulnerable Code `SKILL.md`, lines 16-18: ```bash npm install -g agent-browser agent-browser install agent-browser install --with-deps ``` `SKILL.md`, lines 23-26: ```bash git clone https://github.com/vercel-labs/agent-browser cd agent-browser pnpm install pnpm build ``` `CONTRIBUTING.md`, lines 15-18: ```bash 1. Install the latest version ```bash npm install -g agent-browser@latest ``` ``` ### Technical Analysis The installation instructions retrieve and execute third-party package content without pinning an audited package version, Git commit, or integrity digest. The explicit use of `@latest` further directs users to install whichever release is current at execution time. NPM installation and source builds can execute lifecycle or build scripts supplied by the downloaded package and its transitive dependencies. A global installation may also place executable files into shared user-level or system-level binary locations, depending on the NPM configuration and privileges used. The Git-based installation similarly follows the repository's default branch and resolves dependencies through `pnpm install` without identifying a reviewed commit or documented lockfile verification procedure. Consequently, the effective code installed by users can change after this skill package has been audited. This finding does not establish that the current upstream package is malicious. The vulnerability is the absence of reproducible version pinning and integrity controls, which creates a supply-chain attack opportunity. ### Attack Path 1. An attacker compromises the upstream NPM package, its maintainer account, the source repository, or a transitive dependency. 2. The attacker publishes a malicious release, modifies the default branch, or introduces ...[truncated 1112 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `agent-browser` to a specifically reviewed version rather than using an implicit current release or `@latest`: ```bash npm install --global agent-browser@<reviewed-version> ``` 2. Publish and verify the expected NPM integrity digest or signed provenance for the approved package artifact. 3. For source installation, pin the repository to a full reviewed commit hash: ```bash git clone https://github.com/vercel-labs/agent-browser cd agent-browser git checkout <reviewed-full-commit-hash> ``` 4. Require a committed lockfile and use a frozen or immutable installation mode so dependency resolution cannot silently change: ```bash pnpm install --frozen-lockfile ``` 5. Avoid global installation where possible. Prefer a project-local installation or an isolated container with restricted filesystem and network permissions. 6. Explicitly warn users not to run installation commands with `sudo` or administrative privileges. 7. Add an update process that reviews new versions, dependency changes, lifecycle scripts, and build scripts before changing the pinned version. 8. Ensure `SKILL.md` and `CONTRIBUTING.md` reference the same reviewed version and integrity verification procedure.
