T08 · Insecure Dependencies
- Location
setup.sh:16- Finding
Unpinned dependencies and system-wide package installation
- Content
View full analysis
/dev/null || pip3 install playwright thefuzz # 安装浏览器 echo "" echo "🌐 安装 Chromium 浏览器(约 200MB)..." python3 -m playwright install chromium ``` The root dependency manifest also uses open-ended lower bounds: ```text playwright>=1.40.0 thefuzz>=0.20.0 ``` The secondary manifest similarly uses non-exact constraints: ```text requests>=2.31.0 beautifulsoup4>=4.12.0 lxml>=4.9.0 playwright>=1.40.0 pandas>=2.0.0 numpy>=1.24.0 thefuzz>=0.3.1 urllib3>=2.0.0 ``` ### Technical Analysis The installer asks `pip` to resolve the latest compatible versions of packages and their transitive dependencies at installation time. It also downloads Playwright's Chromium distribution without pinning or independently verifying a specific artifact hash. As a result, the effective code installed by the setup process can change after the Skill has been reviewed. This is a supply-chain hardening deficiency rather than evidence that any currently named package is malicious. The use of `--break-system-packages` is particularly unsafe because it permits modification of an externally managed system Python environment. This exceeds the minimum installation scope necessary for the Skill, which can operate inside an isolated virtual environment. ### Attack Path 1. A user executes `setup.sh`. 2. The script contacts configured Python package indexes and Playwright artifact servers. 3. `pip` resolves mutable package and transitive-dependency versions available at that time. 4. If an upstream release, dependency, package index, or distribution path has been compromised, malicious installation or runtime code is do ...[truncated 841 chars]- Remediation
View remediation
