T08 · Insecure Dependencies
- Location
scripts/requirements.txt:1- Finding
Unpinned and Unverified Third-Party Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
scripts/requirements.txt:1-4; installation instruction atSKILL.md:15
Vulnerability Type: Supply-chain risk from mutable dependency resolution
Risk Level: MediumVulnerable Code
text akshare>=1.10.0 jqdatasdk>=1.8.0 pandas>=1.5.0 requests>=2.28.0The dependencies are installed using the following instruction:
bash pip install -r scripts/requirements.txtTechnical Analysis
All four dependencies use open-ended lower-bound constraints. There is no lockfile, exact version pinning, package hash verification, or documented trusted package index. Consequently, identical installation commands can resolve to different code over time.
Python package installation may execute package-controlled build or installation logic. If a permitted dependency or one of its transitive dependencies is compromised, a future installation could execute attacker-controlled code even though the audited project files remain unchanged.
This finding does not establish that any currently named package is malicious. It identifies a mutable and insufficiently verified software supply chain.
Attack Path
- An attacker compromises the publication account, distribution artifact, or transitive dependency of an allowed package.
- The attacker publishes a malicious version that still satisfies the project's lower-bound constraint.
- A user follows
SKILL.mdand runs the documentedpip installcommand. - Pip resolves the malicious version because no exact version or expected hash is enforced.
- Malicious installation or runtime code executes with the privileges of the user running the Skill.
Impact Assessment
Successful exploitation could provide arbitrary code execution under the installing user's account. The resulting access could include project files, environment variables, JoinQuant credentials, SMTP credentials, network access, and any other r ...[truncated 179 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace lower-bound constraints with exact, reviewed versions.
- Generate and commit a reproducible lockfile that includes transitive dependencies.
- Record and enforce artifact hashes, such as by installing with
pip --require-hashes. - Install only from an explicitly configured and trusted package index.
- Review dependency changes before updating locked versions.
- Run dependency installation and the Skill in an isolated virtual environment or container with minimal filesystem and credential access.
- Add automated vulnerability and package-integrity scanning to the update process.
