T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:16
- Finding
- Unpinned Third-Party Installation and Mutable Source Build## Vulnerability Details **File Location**: `SKILL.md:16-28`; `CONTRIBUTING.md:21` **Vulnerability Type**: Unpinned and mutable third-party dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:16-18`: ```bash npm install -g agent-browser agent-browser install agent-browser install --with-deps ``` `SKILL.md:24-28`: ```bash git clone https://github.com/vercel-labs/agent-browser cd agent-browser pnpm install pnpm build agent-browser install ``` `CONTRIBUTING.md:21`: ```bash npm install -g agent-browser@latest ``` ### Technical Analysis The installation instructions retrieve and execute third-party software without pinning an audited npm package version or immutable source commit. The source installation workflow clones the mutable default branch of the upstream repository and resolves dependencies at installation time. No checksum, cryptographic signature, lockfile verification, or frozen dependency installation is required. A global npm installation can execute package lifecycle scripts controlled by the downloaded package. The subsequent `agent-browser install` commands also execute installed third-party code. The `--with-deps` option may invoke operating-system package management and could be run with elevated privileges, increasing the potential impact. The recommendation to install `agent-browser@latest` explicitly selects a mutable release target. Consequently, code reviewed at one point in time may differ from the code downloaded by a user later. ### Attack Path 1. An attacker compromises the upstream npm package, source repository, maintainer account, release process, or a dependency resolved during installation. 2. The attacker publishes a malicious package release, changes the repository's default branch, or introduces a malicious transitive dependency. 3. A user or agent follows the documented installation instructions. 4. npm or pnpm downloads the attacker-controlled ...[truncated 961 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `agent-browser` to a specific, audited npm version instead of using an unversioned package or `@latest`. 2. For source installations, pin an immutable Git commit or signed release tag and document the expected commit identifier. 3. Publish and verify cryptographic checksums or signatures for downloaded release artifacts. 4. Commit a reviewed dependency lockfile and require frozen or immutable dependency installation, such as `pnpm install --frozen-lockfile`. 5. Disable package lifecycle scripts where feasible, or explicitly review all scripts before allowing execution. 6. Avoid global installation when possible; prefer a project-local, isolated, or containerized installation. 7. Document whether `--with-deps` requires elevated privileges and instruct users not to grant administrative access unless strictly necessary. 8. Run installation and browser setup in a sandbox or restricted environment with minimal filesystem, credential, and network access. 9. Establish a dependency update process in which new versions and source commits are reviewed before documentation pins are changed.
