T08 · Insecure Dependencies
- Location
SKILL.md:139- Finding
Unpinned Third-Party Package and Browser Binary Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 139–142; repeated at lines 227–228 and 258–259
Vulnerability Type: Unpinned and unverified third-party dependencies
Risk Level: MediumVulnerable code snippet:
bash # Install Python dependency pip install playwright # Install Chromium browser engine playwright install chromiumThe same unsafe installation pattern is repeated later:
bash pip install --upgrade playwright playwright install chromiumTechnical Analysis
The Skill instructs the agent to install the latest available
playwrightpackage and a remotely downloaded Chromium binary without specifying reviewed versions, cryptographic hashes, a lockfile, a trusted package index, or artifact verification.Because dependency resolution is mutable, the components installed when the Skill is used may differ from those present when it was audited. The explicit use of
pip install --upgrade playwrightfurther allows future package releases and dependency changes to enter the environment automatically. Python package installation and Playwright browser installation both process content obtained from external distribution infrastructure.This is a supply-chain weakness rather than evidence that the current Playwright package is malicious. Exploitation requires compromise or malicious substitution of a package, transitive dependency, package index, download channel, or browser artifact.
Attack Path
- An attacker compromises or substitutes a future Playwright release, a transitive dependency, the configured Python package index, or a browser artifact used by Playwright.
- A user or agent follows the Skill instructions and runs
pip install playwright,pip install --upgrade playwright, orplaywright install chromium. - The package manager resolves the mutable dependency or artifact without checking a project-controlled version and cryptographic hash.
- The ...[truncated 867 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin Playwright and all transitive Python dependencies to reviewed versions in a lockfile.
- Require cryptographic hashes, such as with
pip install --require-hashes -r requirements.txt. - Configure an explicitly trusted package index rather than relying on ambient package-manager configuration.
- Pin the Playwright browser revision and verify downloaded browser artifacts against vendor-published checksums or signatures.
- Remove the unconditional
--upgradeinstruction; upgrades should undergo security review and testing before deployment. - Install dependencies in an isolated virtual environment or disposable container using a non-privileged account.
- Retain dependency provenance and periodically scan pinned packages and browser components for known vulnerabilities.
