T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:16
- Finding
- Mutable Third-Party Dependencies Are Installed and Executed Without Version or Commit Pinning## Vulnerability Details **File Location**: `SKILL.md:16-32`; `CONTRIBUTING.md:23-26` **Vulnerability Type**: Unpinned third-party package and source dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:16-32`: ```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:23-26`: ```bash 1. Install the latest version ```bash npm install -g agent-browser@latest ``` ``` ### Technical Analysis The installation instructions retrieve and execute mutable third-party content. The npm commands install either the package's current default release or explicitly use the mutable `latest` distribution tag. The source installation procedure clones the repository's current default branch without checking out a reviewed commit or verifying a signed release. Package installation and source builds can execute npm/pnpm lifecycle and build scripts. Consequently, the code executed by these instructions may differ from the code that was available when this Skill was audited. A malicious or compromised future npm release, repository commit, maintainer account, or transitive dependency could therefore introduce arbitrary executable behavior. The referenced package and repository names are consistent with the documented browser automation project. The audited files do not demonstrate typosquatting, dependency confusion, or an existing malicious payload. The risk arises from the absence of immutable version pinning and integrity verification. ### Attack Path 1. An attacker compromises the npm package, its publisher account, the upstream repository, or a relevant transitive dependency. 2. The attacker publishes a malicious release under the default or `latest ...[truncated 1160 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `agent-browser` to an exact, reviewed npm version rather than relying on the default release or `@latest`: ```bash npm install -g agent-browser@<reviewed-exact-version> ``` 2. For source installations, check out an immutable reviewed commit SHA: ```bash git clone https://github.com/vercel-labs/agent-browser cd agent-browser git checkout --detach <reviewed-commit-sha> ``` 3. Verify signed tags, release provenance, and published package integrity before installation. 4. Use a committed lockfile with frozen-lockfile installation for source builds so transitive dependency resolution cannot change silently. 5. Review package lifecycle and build scripts before execution. Where operationally possible, initially install dependencies with lifecycle scripts disabled and explicitly run only reviewed setup steps. 6. Execute installation and browser automation in a least-privileged container or sandbox without unnecessary secrets, host filesystem access, or elevated permissions. 7. Replace the `@latest` troubleshooting recommendation in `CONTRIBUTING.md` with a known-compatible exact version and document a controlled process for reviewing upgrades.
