T08 · Insecure Dependencies
- Location
SKILL.md:143- Finding
Unpinned Runtime Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 143 and 240–243
Vulnerability Type: Unpinned third-party Python dependencies installed from the default package index
Risk Level: MediumVulnerable Code
bash pip install azure-mgmt-compute azure-mgmt-storage azure-identitytext | azure-identity | Python library | Required | `pip install azure-identity` | | azure-mgmt-compute | Python library | Required | `pip install azure-mgmt-compute` | | azure-mgmt-storage | Python library | Required | `pip install azure-mgmt-storage` | | azure-mgmt-network | Python library | Required | `pip install azure-mgmt-network` |Technical Analysis
The Skill instructs users to install mutable package versions from pip's configured package index without exact version constraints, cryptographic hashes, a lockfile, or documented repository validation. As a result, the artifacts installed during execution cannot be reproduced or verified against versions reviewed by the Skill publisher.
Python package installation can execute package-controlled build or installation logic. If a named dependency, one of its transitive dependencies, the configured package index, or the user's package-resolution configuration is compromised, attacker-controlled code could execute during installation. The documented package names are consistent with the Skill's Azure-management purpose, and the audited artifact contains no evidence that these packages are currently malicious; the finding concerns the unsafe dependency acquisition process.
Attack Path
- A user follows the environment-preparation instructions in
SKILL.md. - The user runs one or more documented
pip installcommands. - pip resolves the latest compatible releases and transitive dependencies from its configured index because no versions or hashes are specified.
- An attacker compromises a resolved package, its release process, an index or mirror, ...[truncated 1127 chars]
- A user follows the environment-preparation instructions in
- Remediation
View remediation
Remediation Suggestions
- Replace unconstrained installation commands with dependencies pinned to exact, reviewed versions.
- Maintain dependencies in a lockfile or requirements file containing cryptographic hashes, and install them with:
bash python3 -m pip install --require-hashes -r requirements.txt - Include all transitive dependencies in the reviewed lockfile so resolution cannot silently introduce unreviewed versions.
- Document and enforce a trusted package index, preferably an organization-controlled mirror that scans and approves artifacts.
- Install dependencies in an isolated virtual environment rather than the system Python environment.
- Run installation and subsequent operations under a least-privileged operating-system account.
- Avoid exposing Azure client secrets during package installation. Prefer short-lived, managed, or workload identities where supported.
- Add automated dependency vulnerability scanning and a controlled process for reviewing and updating pinned versions.
- Supply the referenced implementation scripts in the package so their dependency usage and Azure operations can be audited before execution.
