T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:17
- Finding
- Unpinned Third-Party Package Installation Creates a Supply-Chain Execution Risk## Vulnerability Details **File Location**: `SKILL.md:17-18`, `SKILL.md:24-28`, and `CONTRIBUTING.md:17` **Vulnerability Type**: Unpinned and mutable third-party dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:17-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:17`: ```bash npm install -g agent-browser@latest ``` ### Technical Analysis The installation instructions retrieve and execute mutable third-party software without pinning it to a reviewed npm package version, immutable Git commit, or verified artifact digest. The contributing guide explicitly installs `agent-browser@latest`, while the main installation command implicitly selects the package version currently resolved by npm. The source installation alternative clones the repository's mutable default branch and installs its dependency graph before running a build. Consequently, the code executed by these commands can change after this skill has been reviewed. npm installation may also execute package lifecycle scripts, and the source build executes scripts defined by the downloaded project and its dependencies. Global installation increases the potential scope of filesystem changes. The `agent-browser install --with-deps` command may additionally install browser or operating-system dependencies, potentially increasing its privilege and system impact depending on the upstream implementation and the privileges used by the operator. The package and repository names are consistent with the skill's declared browser-automation purpose. There is no evidence in the reviewed files that the current upstream package is malicious, that typosquatting is occurring, or that this project intentionally retrieves a malicious payload. The issue is the absence of dependency immuta ...[truncated 1963 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the npm dependency to a specific reviewed version instead of using an implicit current version or `@latest`: ```bash npm install -g agent-browser@<reviewed-version> ``` 2. Record and verify the npm package integrity digest or provenance before installation. Where supported, require registry provenance/signature verification and document the expected package identity. 3. Pin source installations to an immutable, reviewed Git commit: ```bash git clone https://github.com/vercel-labs/agent-browser cd agent-browser git checkout --detach <reviewed-commit-sha> ``` 4. Commit and enforce a lockfile for source builds. Use a frozen installation mode so dependency resolution cannot silently change: ```bash pnpm install --frozen-lockfile ``` 5. Avoid global installation where practical. Prefer a dedicated, unprivileged environment, container, or project-local installation with narrowly scoped filesystem access. 6. Do not recommend running installation commands as an administrator unless strictly necessary. Document which operations performed by `agent-browser install --with-deps` require elevated privileges and allow users to review those operations before authorization. 7. Separate dependency installation from execution and require review when the pinned version or commit changes. 8. Add an update procedure that validates new releases, lockfile changes, package lifecycle scripts, and upstream ownership before updating the documented pin.
