T08 · Insecure Dependencies
- Location
SKILL.md:7- Finding
Unpinned Playwright and Chromium Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 7
Vulnerability Type: Unpinned third-party dependencies and mutable browser artifacts
Risk Level: Mediumyaml dependencies: "pip install playwright && playwright install chromium"Technical Analysis
The dependency installation command does not pin Playwright to a reviewed version and does not verify package or browser artifact integrity. Consequently, executing it retrieves whatever Playwright release and Chromium artifact the upstream sources resolve to at installation time.
This creates a non-reproducible supply-chain boundary: the effective installed components can change after the Skill has been audited. If an upstream package, package-publishing account, package index, download endpoint, dependency, or browser artifact is compromised, attacker-controlled installation behavior or executable content could be introduced without any modification to this repository.
The command uses the expected Playwright package name and does not, by itself, demonstrate dependency confusion or an actively malicious package. The risk arises from mutable, unverified third-party artifacts rather than from confirmed malicious upstream content.
Attack Path
- An attacker compromises a relevant upstream package release, publishing account, distribution endpoint, transitive dependency, or browser artifact.
- A user or agent follows the dependency declaration and runs
pip install playwright. - The package manager resolves and installs the current mutable release rather than a previously audited version.
- The user or agent runs
playwright install chromium, downloading an additional executable browser artifact without project-level integrity verification. - Malicious installation behavior or executable content runs when the affected component is installed or subsequently invoked for PDF generation.
Impact Assessment
A compromised dependenc ...[truncated 646 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin Playwright to an explicitly reviewed version, for example with an exact
playwright==X.Y.Zconstraint. - Store dependencies in a lock file and require cryptographic hashes, such as a hash-locked requirements file installed with
pip install --require-hashes. - Pin and document the corresponding Chromium revision instead of implicitly accepting whichever browser payload the selected package resolves at installation time.
- Retrieve packages only from explicitly configured, trusted repositories and prevent fallback to untrusted indexes.
- Verify browser downloads using publisher-provided checksums or signatures where supported.
- Perform installation and PDF generation in a non-privileged, isolated container or sandbox with restricted filesystem and network access.
- Regularly review pinned versions for security updates, update them through a controlled process, and regenerate integrity hashes after review.
- Pin Playwright to an explicitly reviewed version, for example with an exact
