T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:10
- Finding
- Unpinned Third-Party Dependencies## Vulnerability Details **File Location**: `SKILL.md`, lines 10–27 **Vulnerability Type**: Unpinned third-party packages **Risk Level**: Medium ### Complete Code Snippet ```json "install": [ { "id": "pip-deps", "kind": "python", "package": "akshare", "label": "Install AkShare" }, { "id": "pip-deps", "kind": "python", "package": "pandas", "label": "Install Pandas" }, { "id": "pip-deps", "kind": "python", "package": "numpy", "label": "Install NumPy" } ] ``` The same unsafe installation pattern is also documented at line 64: ```bash pip install akshare pandas numpy ``` ### Technical Analysis The Skill declares and recommends installing `akshare`, `pandas`, and `numpy` without exact versions, package hashes, a lockfile, or an explicitly trusted package index. Dependency resolution therefore selects whichever compatible releases are available at installation time. This makes installations non-reproducible and creates supply-chain exposure. If an upstream package, maintainer account, distribution channel, or newly resolved transitive dependency is compromised, attacker-controlled code could execute during package installation or when the script imports the affected package. The project itself does not contain evidence that these package names are currently malicious; the risk arises from accepting mutable, unverified future releases. ### Attack Path 1. An attacker compromises an upstream dependency release, maintainer account, package distribution channel, or transitive dependency. 2. A user installs the dependencies through the Skill installer or runs the documented `pip install akshare pandas numpy` command. 3. Pip resolves an unpinned, attacker-controlled release because no approved version or hash is enforced. 4. Malicious installation hooks or imported package code execute under the account running the Skill. 5. The payload obtains access to resources available to that account, potentially inc ...[truncated 509 chars]
- Remediation
- ## Remediation Suggestions 1. Pin every direct dependency to a reviewed exact version, for example with `package==version`. 2. Generate and commit a lockfile that also fixes all transitive dependency versions. 3. Use a hash-checked requirements file and install it with `pip install --require-hashes -r requirements.txt`. 4. Obtain hashes from reviewed artifacts and update them only through a controlled dependency-review process. 5. Configure an explicitly approved package index or internal package mirror rather than relying on ambient pip configuration. 6. Add automated dependency vulnerability and integrity checks to the release workflow. 7. Test dependency updates in an isolated environment before approving and publishing them. 8. Update both the Skill installation metadata and the documented installation command so they enforce the same reviewed versions.
