T08 · Insecure Dependencies
- Location
SKILL.md:119- Finding
Unpinned Third-Party Dependencies in Primary Skill Instructions
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 119-120
Vulnerability Type: Unpinned and unverified third-party package installation
Risk Level: MediumVulnerable Code:
markdown - Graphify: `pip install graphifyy` - Document support: `pip install python-docx openpyxl pillow`Technical Analysis
The skill instructs users or agents to install packages directly from the default Python package index without version constraints, cryptographic hashes, a lock file, or package provenance verification. Consequently, the exact code installed can change after the skill has been audited.
There is also an unexplained naming difference between the referenced upstream project, “Graphify,” and the package name
graphifyy. The available files do not establish that this distribution is an authenticated artifact of the referenced project. This creates potential exposure to package-name confusion, typosquatting, account compromise, or a malicious future release.Python packages may execute package-controlled logic during source builds or when their installed modules and command entry points are subsequently invoked. Graphify is explicitly intended to run against a target repository, so a compromised package would receive the invoking user's access to that repository and environment.
Attack Path
- An attacker publishes or compromises a release of one of the unpinned packages, or controls a confusingly named distribution.
- A user or agent follows the skill instructions and runs the documented
pip installcommand. - Pip resolves the current mutable package release without validating it against a reviewed version and hash.
- Attacker-controlled logic executes during a source-package build or when the installed analyzer is subsequently invoked.
- The malicious dependency reads, modifies, or removes files accessible to the invoking account and may access environment variables, repository secrets, ...[truncated 492 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace unconstrained package installation commands with exact, security-reviewed versions.
- Supply a requirements or lock file containing cryptographic hashes and require installation with
pip install --require-hashes. - Verify and document the authoritative mapping between the Graphify upstream repository and the
graphifyypackage distribution. - Install dependencies inside a dedicated virtual environment or disposable container under a non-privileged account.
- Review package source, maintainers, release history, signatures, and transitive dependencies before approving upgrades.
- Separate optional document-processing dependencies and install them only when the requested analysis requires those formats.
- Use an approved internal package mirror or artifact repository after packages have passed supply-chain review.
