T08 · Insecure Dependencies
- Location
SKILL.md:26- Finding
Unpinned Third-Party Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:26,SKILL.md:96,SKILL.md:178, andSKILL.md:287
Vulnerability Type: Unpinned and integrity-unverified third-party dependencies
Risk Level: MediumVulnerable Code
bash # SKILL.md:26 pip install fpdf reportlab pdfplumber pymupdf pypdf # SKILL.md:96 pip install python-docx # SKILL.md:178 pip install openpyxl pandas xlsxwriter # SKILL.md:287 pip install python-pptxTechnical Analysis
The skill instructs users or agents to install third-party Python packages without exact version constraints, cryptographic hashes, a lockfile, an isolated environment, or an explicitly trusted package repository. Consequently, the content resolved by
pipcan change after the skill has been reviewed.If a package release or one of its transitive dependencies is compromised,
pipmay retrieve attacker-controlled content. Source distributions can execute build-system code while being built, and malicious installed packages can execute code when imported by the document-processing examples. The absence of version pinning and hash verification also prevents reproducible dependency resolution.The reviewed package names do not themselves demonstrate dependency confusion or typosquatting, and the project does not contain a malicious payload. The risk arises from trusting mutable, integrity-unverified supply-chain content.
Attack Path
- An attacker compromises a named package, a transitive dependency, or the package repository/account used to distribute a future release.
- A user or agent follows one of the documented
pip installcommands. pipresolves the latest eligible package graph because no reviewed versions are pinned.- The compromised artifact is downloaded without verification against project-maintained hashes.
- Attacker-controlled code executes during a source build or when the installed package is subsequently imported by ...[truncated 744 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace unconstrained package installation commands with exact, reviewed versions.
- Maintain dependencies in a lockfile generated by a tool such as
pip-tools, Poetry, or uv. - Require cryptographic hashes, such as through
pip install --require-hashes -r requirements.txt. - Review and pin transitive dependencies rather than only direct dependencies.
- Install packages in a dedicated virtual environment or restricted container under a non-privileged account.
- Configure an approved package index or internal mirror and disable unexpected supplemental indexes.
- Prefer reviewed binary wheels where appropriate, and avoid untrusted source builds.
- Scan locked dependencies regularly for known vulnerabilities and update them through a controlled review process.
- Document the tested Python and dependency versions to make the workflow reproducible.
