T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:17
- Finding
- Unpinned Global npm Package and Dependency Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 17-26 **Vulnerability Type**: Unpinned third-party dependencies and unverified installation artifacts **Risk Level**: Medium ### Vulnerable Code ```bash npm install -g agent-browser agent-browser install agent-browser install --with-deps ``` ```bash git clone https://github.com/vercel-labs/agent-browser cd agent-browser pnpm install pnpm build agent-browser install ``` ### Technical Analysis The installation instructions resolve mutable upstream content without specifying an audited npm package version, Git commit, lockfile state, or artifact integrity hash. The npm command installs the package globally, while the source-based method clones the repository's current default branch. Both approaches can therefore retrieve code that differs from the version reviewed during this audit. npm package installation can invoke package lifecycle scripts. The subsequent `agent-browser install` and `agent-browser install --with-deps` commands may also download browser components or install system dependencies. Consequently, compromise of the package, repository, maintainer account, release infrastructure, or a transitive dependency could cause attacker-controlled code to execute during installation. The referenced GitHub repository is consistent with the documented browser CLI, and no evidence of an intentionally malicious or spoofed package was found in the audited files. The vulnerability is the absence of version pinning and integrity controls. ### Attack Path 1. An attacker compromises the upstream npm package, source repository, maintainer account, release channel, or a transitive dependency. 2. The attacker publishes malicious content under the existing package name or modifies the repository's default branch. 3. A user follows the documented unpinned installation commands. 4. npm, Git, or the CLI installation process retrieves the mutable malicious c ...[truncated 938 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `agent-browser` to a specifically reviewed version, for example `agent-browser@X.Y.Z`, rather than resolving the current release. 2. Pin source installations to a verified commit hash or signed release tag instead of cloning and building the repository's mutable default branch. 3. Publish and verify expected integrity hashes for downloaded packages, browser binaries, and other installation artifacts. 4. Use a committed lockfile with immutable or frozen-lockfile installation for source builds, and review all dependency changes before updating it. 5. Prefer a project-local installation over a global installation so that the executable is isolated and version-controlled. 6. Run installation under a dedicated, unprivileged account or sandbox. Avoid administrator or root privileges unless a separately reviewed system dependency genuinely requires them. 7. Separate browser download and operating-system dependency installation into documented, auditable steps rather than relying on a broad `--with-deps` operation. 8. Verify npm provenance, release signatures, repository ownership, and package maintainer changes before accepting upgrades.
