T08 · Insecure Dependencies
- Location
SKILL.md:292- Finding
Unpinned Runtime Dependencies Create a Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 292–295
Vulnerability Type: Unpinned third-party dependencies
Risk Level: MediumVulnerable Code
markdown | pandas | Python library | Required | `pip install pandas` | | numpy | Python library | Required | `pip install numpy` | | matplotlib | Python library | Optional | `pip install matplotlib` | | openpyxl | Python library | Optional | `pip install openpyxl` |Technical Analysis
The skill recommends installing required and optional Python packages without fixed versions or integrity hashes. These commands resolve mutable package releases from whichever Python package index is configured in the runtime.
Consequently, installations are neither reproducible nor cryptographically tied to reviewed artifacts. If the configured index, package account, release, or dependency chain is compromised, package-controlled code may execute during installation or later when the analysis environment imports the package.
The file does not explicitly require automatic installation, use an untrusted index, or identify a currently malicious package. The issue is therefore a supply-chain exposure rather than evidence of an intentionally malicious payload.
Attack Path
- An agent attempts to perform the documented data-analysis workflow.
- A required package is unavailable and the agent follows one of the documented unpinned
pip installcommands. pipqueries the runtime's configured package index and resolves the latest compatible package and transitive dependencies.- An attacker has compromised a package release, package-maintainer account, dependency, index, or index configuration.
- The malicious package artifact is downloaded and installed without verification against approved hashes.
- Package-controlled code executes during installation or import with the permissions of the agent process.
- The payload can access resources available to that process, including the workin ...[truncated 690 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin every direct dependency to a reviewed version instead of resolving the latest release:
text pandas==<reviewed-version> numpy==<reviewed-version> matplotlib==<reviewed-version> openpyxl==<reviewed-version> -
Maintain a reviewed lock or requirements file that includes all transitive dependencies and cryptographic hashes.
-
Install with hash verification, for example:
bash python -m pip install --require-hashes -r requirements.txt -
Retrieve packages only from an explicitly configured, trusted package index or an organization-controlled artifact mirror.
-
Generate and review dependency provenance or software bills of materials, and scan locked artifacts for known vulnerabilities before deployment.
-
Prefer a prebuilt, immutable analysis environment containing approved dependencies rather than permitting the agent to install packages at runtime.
-
If runtime installation remains necessary, perform it in an isolated environment with minimal filesystem permissions, no unnecessary credentials, and restricted network access.
-
