T08 · Insecure Dependencies
- Location
SKILL.md:143- Finding
Unpinned Third-Party Dependencies Permit Supply-Chain Compromise
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:143andSKILL.md:229-230
Vulnerability Type: Unpinned and unverified third-party dependencies
Risk Level: MediumVulnerable Code
At
SKILL.md:143:bash pip install akshare pandasAt
SKILL.md:229-230:markdown | akshare | Python library | Required | `pip install akshare` | | pandas | Python library | Required | `pip install pandas` |Technical Analysis
The documented installation commands retrieve the latest available versions of
akshareandpandasfrom the Python package index configured in the user's environment. The project does not provide version constraints, a dependency lockfile, package hashes, or index restrictions.Because package versions are not pinned, users may install dependency releases that were not reviewed by the Skill author. If a package distribution, maintainer account, package index, or configured mirror is compromised, a malicious release could execute attacker-controlled code during installation or when the Skill imports and uses the package.
The audit found no evidence that the named packages are currently malicious. The vulnerability is the absence of controls that ensure users install known, reviewed package artifacts.
Attack Path
- An attacker compromises a dependency maintainer account, package release process, configured package index, or package mirror.
- The attacker publishes or substitutes a malicious release of a required dependency.
- A user follows the documented command:
bash pip install akshare pandas - Package installation selects the malicious or compromised release because no approved version or artifact hash is specified.
- Attacker-controlled code executes during package installation or when the dependency is imported at runtime.
- The code runs with the privileges of the user or automation agent performing the installation.
Impac
...[truncated 616 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to an explicitly reviewed version, for example:
text akshare==REVIEWED_VERSION pandas==REVIEWED_VERSION - Generate and commit a lockfile containing exact transitive dependency versions.
- Require package hashes, such as through a hash-locked requirements file and:
bash python3 -m pip install --require-hashes -r requirements.txt - Install packages only from an explicitly configured, trusted package index or an internally controlled artifact repository.
- Review dependency provenance, release signatures where available, maintainer changes, and vulnerability advisories before updating locked versions.
- Perform installations in an isolated virtual environment or container using a non-privileged account.
- Add automated dependency and software-composition analysis to detect compromised, vulnerable, or unexpectedly changed packages.
- Replace the unpinned installation commands in
SKILL.mdwith instructions that use the reviewed lockfile.
- Pin every direct dependency to an explicitly reviewed version, for example:
