T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:17
- Finding
- Unpinned Third-Party CLI Installation Enables Supply-Chain Compromise## Vulnerability Details **File Location**: `SKILL.md:17-33`; related instruction at `CONTRIBUTING.md:19-22` **Vulnerability Type**: Unpinned and mutable third-party dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:17-33`: ```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 ``` ``` `CONTRIBUTING.md:19-22`: ```bash 1. Install the latest version ```bash npm install -g agent-browser@latest ``` ``` ### Technical Analysis The installation instructions execute mutable third-party content without pinning an npm package version, Git commit, dependency lockfile state, or integrity hash. The `@latest` instruction explicitly selects whichever release is current at installation time. Likewise, cloning the repository without checking out a reviewed commit causes the build to consume the current default branch. Global npm installation can execute package lifecycle scripts with the installing user's privileges. The source-build path also executes dependency lifecycle scripts through `pnpm install` and subsequently runs upstream build and installation logic. Although the named npm package and GitHub repository are consistent with the documented upstream project and there is no evidence of typosquatting in the audited files, these mutable installation paths prevent reproducible verification. ### Attack Path 1. An attacker compromises the upstream npm publishing account, repository, dependency chain, or release process. 2. The attacker publishes a malicious version under the legitimate package name or adds malicious installation/build logic to the repository's default branch. 3. A user follows the documented `npm install -g agent-browser`, `npm install -g agent- ...[truncated 954 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `agent-browser` to a reviewed, exact version instead of using an implicit current release or `@latest`. 2. Pin source installation to a full Git commit hash and verify that commit against a trusted signed release or tag. 3. Retain and enforce a reviewed lockfile for source builds, using immutable/frozen-lockfile installation options. 4. Verify package integrity through registry integrity metadata, checksums, signed provenance, or Sigstore attestations where available. 5. Remove `npm install -g agent-browser@latest` from troubleshooting guidance. 6. Prefer a project-local or isolated installation over a global installation to reduce the modification scope. 7. Document that users should not run package installation with administrator or root privileges. 8. Review lifecycle scripts and transitive dependency changes before upgrading the pinned version.
