T08 · Insecure Dependencies
- Location
scripts/browser_reply_runner.py:22- Finding
Unpinned Third-Party Package Is Downloaded and Executed at Runtime
- Content
View full analysis
Vulnerability Details
File Location:
scripts/browser_reply_runner.py:22andSKILL.md:201
Vulnerability Type: Unpinned runtime dependency and supply-chain exposure
Risk Level: HighVulnerable Code
python p.add_argument( "--browser-cmd", default="npx -y agent-browser", help="agent-browser command prefix" )The documented behavior is:
markdown This executor defaults to `npx -y agent-browser`, so it can work even if `agent-browser` is not installed globally yet.Technical Analysis
The default command uses
npx -yto retrieve and executeagent-browserwithout specifying an audited version, lockfile, or integrity hash. Consequently, the effective code executed by the Skill can change after the project itself has been reviewed.The
-yoption suppresses the package installation confirmation, making the download and execution automatic. If the upstream package, package registry, maintainer account, or dependency graph is compromised, malicious code could execute as soon as the browser runner is invoked.Although the package name does not exhibit obvious typosquatting in the audited files, the absence of version and integrity controls creates a supply-chain vulnerability.
Attack Path
- An attacker compromises the published
agent-browserpackage, one of its dependencies, or the associated package-maintainer account. - A new malicious package version is published under the package name used by the runner.
- An operator invokes
scripts/browser_reply_runner.pyusing its default configuration. - The runner executes
npx -y agent-browser. npxretrieves and executes the current package version without an interactive confirmation.- The malicious package executes under the operating-system identity of the operator.
Impact Assessment
Malicious dependency code would receive the same local privileges as the operator running the Skill. ...[truncated 381 chars]
- An attacker compromises the published
- Remediation
View remediation
Remediation Suggestions
- Pin
agent-browserto a specifically reviewed version rather than resolving the latest release at runtime. - Add a package manifest and committed lockfile containing integrity metadata.
- Install dependencies during a controlled setup phase rather than during reply execution.
- Invoke the locally installed, version-locked executable directly.
- Enable dependency vulnerability and provenance checks in CI.
- Run browser automation in a restricted environment with minimal filesystem access and no unrelated credentials.
- Avoid automatic installation flags such as
-yfor security-sensitive interactive-browser tooling.
- Pin
