T08 · Insecure Dependencies
- Location
SKILL.md:397- Finding
Unpinned Third-Party Dependencies Create a Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 397–405
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: MediumVulnerable Code
markdown | gitpython | Python 库 | 必需 | `pip install gitpython` | | pydriller | Python 库 | 必需 | `pip install pydriller` | | radon | Python 库 | 必需 | `pip install radon` | | tabulate | Python 库 | 必需 | `pip install tabulate` | | jinja2 | Python 库 | 必需 | `pip install jinja2` | | click | Python 库 | 必需 | `pip install click` | | reportlab | Python 库 | PDF 必需 | `pip install reportlab` | | weasyprint(可选) | Python 库 | PDF 推荐 | `pip install weasyprint` | | concurrent-futures | Python 标准库 | 批量扫描 | Python 自带 |Technical Analysis
The skill instructs users or agents to install several packages by name without exact versions, cryptographic hashes, a lockfile, or a trusted package-index configuration. Consequently, each installation resolves to whichever compatible release and transitive dependency set the configured Python index provides at installation time.
This mutable dependency resolution weakens build reproducibility and exposes the installation process to package-registry compromise, malicious upstream releases, compromised transitive dependencies, or unsafe index configuration. Python packages can execute attacker-controlled behavior during installation, build processing, or subsequent import and use.
The project does not include the advertised
src.mainimplementation, so the necessity, compatibility, and safe use of these dependencies cannot be verified from the supplied artifact.Attack Path
- A user or AI agent follows the dependency instructions in
SKILL.md. - It runs one or more unpinned commands, such as
pip install pydriller. pipresolves the package and its transitive dependencies through the environment's configured index.- A compromised package release, dependency, registry account, mirror, or index configuration supplies malicious package cont ...[truncated 760 chars]
- A user or AI agent follows the dependency instructions in
- Remediation
View remediation
Remediation Suggestions
-
Pin every direct dependency to an explicitly reviewed version.
-
Generate and ship a lockfile that also fixes all transitive dependency versions.
-
Record cryptographic hashes and install with hash verification, for example:
bash python -m pip install --require-hashes -r requirements.txt -
Perform installation inside a dedicated, least-privileged virtual environment rather than a global or privileged Python environment.
-
Configure and document a trusted package index; do not silently inherit arbitrary extra-index or mirror settings.
-
Review dependency provenance and vulnerability status before publishing updates.
-
Bundle the intended
src.mainimplementation so auditors can verify why each dependency is required and how it is used. -
Add automated dependency integrity and vulnerability checks to the release process.
-
