T08 · Insecure Dependencies
- Location
install.sh:7- Finding
Unpinned Dependency Installation into the System Python Environment
- Content
View full analysis
Vulnerability Details
File Location:
install.sh:7-13
Vulnerability Type: Unpinned third-party dependency and unsafe system-wide package installation
Risk Level: MediumComplete Code Snippet:
bash # Install Python dependencies pip install --break-system-packages --quiet google-genai 2>/dev/null || { echo "⚠️ pip install failed, trying without --break-system-packages..." pip install --quiet google-genai 2>/dev/null || { echo "❌ Failed to install google-genai. Install manually: pip install google-genai" exit 1 } }Technical Analysis
The installer retrieves
google-genaiwithout an exact version constraint or cryptographic hash verification. Consequently, installation behavior depends on whichever package version and transitive dependencies the package index serves at execution time, rather than on a dependency set covered by this audit.The first installation attempt also uses
--break-system-packages, bypassing Python's externally managed environment safeguard. This can modify the shared system Python environment and interfere with packages used by unrelated applications. Although the package name is consistent with the documented dependency and no typo-squatting or untrusted package index was identified, the dependency installation remains mutable and executes code outside the reviewed project.Attack Path
- A user runs
bash install.sh. - The installer invokes
pipagainst the default package index without a version pin or required hashes. pipresolves the latest availablegoogle-genairelease and its transitive dependencies.- If a future release, distribution artifact, package-index account, or transitive dependency is compromised, malicious installation or runtime code is placed in the Python environment.
- The malicious code executes with the privileges of the user running the installer or when the Skill subsequently imports th ...[truncated 764 chars]
- A user runs
- Remediation
View remediation
Remediation Suggestions
- Create and use a dedicated virtual environment rather than modifying the system Python installation.
- Remove the
--break-system-packagesoption. - Pin
google-genaiand all transitive dependencies to reviewed versions in a lock file or requirements file. - Require cryptographic hashes, for example with
pip install --require-hashes -r requirements.txt. - Use an explicitly trusted package index and disable unintended additional indexes where practical.
- Run dependency vulnerability and provenance checks during release preparation.
- Update
SKILL.mdmetadata and installation instructions to reference the same pinned dependency set.
