T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:15
- Finding
- Unpinned Third-Party Package and Installer Execution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:15-25`; `CONTRIBUTING.md:15-19` **Vulnerability Type**: Unpinned and mutable third-party dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:15-25`: ```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 ``` `CONTRIBUTING.md:15-19`: ```bash npm install -g agent-browser@latest ``` ### Technical Analysis The installation instructions download and execute mutable third-party code without pinning an audited package version, immutable Git commit, or dependency integrity value. The global npm installation may execute package lifecycle scripts under the invoking user's privileges. The source installation workflow clones the repository's current default branch and resolves transitive dependencies through `pnpm install`, meaning the effective code can change after this Skill has been reviewed. The explicit use of `@latest` further guarantees that future users may receive a different package version. After installation, the documentation immediately invokes package-controlled installation commands. The `--with-deps` option may also install or modify system dependencies and could have a wider impact if executed with elevated privileges. No malicious upstream package or payload was identified in the audited project. The risk arises from the mutable, unverified supply-chain execution path. ### Attack Path 1. An attacker compromises the upstream npm package, GitHub repository, maintainer account, release process, or a transitive dependency. 2. The attacker publishes malicious code under the package name, latest release, default repository branch, or dependency graph. 3. A user follows the Skill instructions and runs the unpinned global installation, clone/build workflow, or `@latest` installation. 4. npm or pnpm downloads ...[truncated 1118 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace mutable package references with an exact, audited version: ```bash npm install -g agent-browser@<audited-version> ``` 2. Pin source installations to a reviewed immutable commit: ```bash git clone https://github.com/vercel-labs/agent-browser cd agent-browser git checkout <audited-commit-sha> ``` 3. Publish and verify package integrity hashes or signed release artifacts before installation. 4. Commit and enforce a lockfile for source builds, including transitive dependency versions. 5. Remove the recommendation to install `@latest` when reproducing or diagnosing issues. 6. Run installation in an isolated, non-privileged environment such as a container or dedicated user account. 7. Document exactly what `agent-browser install --with-deps` changes and require explicit user confirmation before system dependency installation. 8. Avoid `sudo` or administrator execution unless strictly necessary, and separate privileged dependency installation from unprivileged package execution. 9. Periodically review the pinned release and update it only after source, dependency, and integrity verification. ]]>
