T08 · Insecure Dependencies
- Location
references/setup.md:117- Finding
Unpinned Playwright Installation and Browser Binary Download
- Content
View full analysis
Vulnerability Details
File Location:
references/setup.md, line 117
Vulnerability Type: Unpinned third-party dependency and executable artifact download
Risk Level: MediumComplete Code Snippet:
markdown - local install: `npm install playwright` and `npx playwright install chromium`Technical Analysis
The setup workflow instructs the agent to install the latest version of Playwright and then download a Chromium binary. Neither the package version nor the browser artifact is pinned or independently verified.
An npm installation can execute package lifecycle scripts under the privileges of the user running the agent. The resolved package may also depend on the active npm registry and local npm configuration. Consequently, a compromised package release, malicious registry mirror, dependency-resolution attack, or altered browser download path could introduce executable content that was not present during the Skill audit.
The instructions appropriately require user confirmation before installation, which reduces accidental execution, but confirmation does not address package integrity or source authenticity.
Attack Path
- Browser-assisted retrieval is requested or ordinary request-mode retrieval fails.
- The agent follows the documented setup path and runs
npm install playwright. - npm resolves the current package version through the configured registry or mirror.
- A compromised package, transitive dependency, registry response, or lifecycle script executes during installation.
- The agent runs
npx playwright install chromium, causing an additional executable binary to be downloaded. - Malicious installation code or a tampered browser artifact executes with the permissions of the agent's operating-system account.
Impact Assessment
Successful exploitation could execute arbitrary code with the privileges of the user running the installation. This may permit access to file ...[truncated 331 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin Playwright to a reviewed exact version rather than resolving the latest release.
- Use a lockfile and prefer a reproducible command such as
npm ci. - Require an approved npm registry and validate that proxy or mirror configuration points to a trusted service.
- Verify package integrity through npm lockfile integrity metadata or an equivalent trusted manifest.
- Pin and verify the downloaded browser revision and artifact checksum where supported.
- Disable unnecessary npm lifecycle scripts when feasible, or perform installation in a restricted sandbox.
- Avoid global installation and run the browser component with the minimum filesystem and network permissions required.
- Continue requiring explicit user approval, but disclose that the operation downloads and executes third-party components.
