T08 · Insecure Dependencies
- Location
SKILL.md:247- Finding
Unpinned Third-Party Python Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 247–250
Vulnerability Type: Unpinned and integrity-unverified package installation
Risk Level: Mediummarkdown | pandas | Python library | Optional | `pip install pandas` | | numpy | Python library | Optional | `pip install numpy` | | scipy | Python library | Optional | `pip install scipy` (required for hypothesis testing) | | statsmodels | Python library | Optional | `pip install statsmodels` (required for advanced statistics) |Technical Analysis
The skill recommends installing third-party packages without fixed versions, cryptographic hashes, or a lockfile. Consequently, the exact artifacts installed can change over time and cannot be verified against a reviewed dependency set.
Although the listed package names are established projects and the instructions do not specify an obviously unsafe source, Python package installation may execute package-controlled build logic. A compromised release, transitive dependency, package index, or dependency-resolution path could therefore result in arbitrary local code execution during installation.
Attack Path
- An attacker compromises a listed package release, one of its transitive dependencies, or the package-resolution infrastructure used by
pip. - A user or agent follows the documented command and installs the dependency without a version constraint or hash verification.
pipresolves the compromised artifact because the skill does not enforce a reviewed version or trusted artifact digest.- Malicious package installation or build logic executes with the permissions of the user running
pip. - The malicious component can then access resources available to that account and may remain in the Python environment for subsequent analyses.
Impact Assessment
Successful exploitation could provide code execution with the privileges of the account performing the installation. The acce ...[truncated 380 chars]
- An attacker compromises a listed package release, one of its transitive dependencies, or the package-resolution infrastructure used by
- Remediation
View remediation
Remediation Suggestions
- Pin each direct dependency to an explicitly reviewed version.
- Maintain a lockfile that also constrains transitive dependencies.
- Require hashes for downloaded distributions, such as through
pip install --require-hashes -r requirements.txt. - Configure an approved package index explicitly and disable unintended extra indexes to reduce dependency-confusion exposure.
- Prefer reviewed binary wheels where appropriate and prevent unexpected source builds.
- Install packages in a dedicated, non-privileged virtual environment rather than globally or with administrator privileges.
- Require explicit user approval before installing dependencies; the agent should not install packages automatically.
- Regularly scan and update the locked dependency set through a controlled review process.
