T08 · Insecure Dependencies
- Location
SKILL.md:39- Finding
Unpinned Third-Party Package Installation Creates Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 39–42
Vulnerability Type: Unpinned and unverified third-party dependency installation
Risk Level: MediumComplete Code Snippet:
markdown ## Alternative: Web-Scraping Tool If all services above fail, try Scrapling: - Repository: https://github.com/D4Vinci/Scrapling - Usage: Run `pip install scrapling` before useTechnical Analysis
The skill instructs the agent to install
scraplingdirectly from the Python package index without specifying an audited version, verifying package hashes, or using a lockfile. The dependency version and its transitive dependency graph can therefore change after the skill has been reviewed.Python package installation can invoke build backends and other package-controlled installation behavior. If the package, one of its dependencies, its distribution account, or the relevant package infrastructure is compromised, installation could execute attacker-controlled code with the privileges of the account running the agent.
The referenced GitHub repository does not protect the actual
pip installcommand because the instruction neither installs a verified commit from that repository nor verifies that the retrieved package corresponds to reviewed source code.Attack Path
- The three URL-conversion services fail to process a requested page.
- The agent follows the documented fallback and executes
pip install scrapling. pipresolves the latest compatible package and transitive dependencies from configured package indexes.- A compromised or unexpectedly modified package supplies malicious installation or runtime code.
- That code executes during installation or when the scraper is imported and used.
- The malicious code gains the same filesystem, network, and process privileges as the account running the installation or scraper.
Impact Assessment
Successful exploitation could result in ...[truncated 354 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin Scrapling and all transitive dependencies to versions that have been reviewed.
- Use a lockfile and require package hashes, such as
pip install --require-hashes -r requirements.txt. - Retrieve packages only from explicitly trusted indexes.
- Perform installation inside a disposable virtual environment or sandbox with minimal filesystem and network permissions.
- Do not install dependencies automatically. Require explicit user approval before modifying the environment.
- Prefer packaging the audited dependency set with the skill or using an existing approved scraping tool.
- Regularly scan pinned dependencies for known vulnerabilities and review changes before upgrading.
