T08 · Insecure Dependencies
- Location
SKILL.md:19- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 19
Vulnerability Type: Supply-chain exposure through an unpinned package
Risk Level: MediumVulnerable Code
bash pip install akshareTechnical Analysis
The skill instructs the agent to install
aksharefrom pip without specifying an exact version or verifying package integrity. Consequently, the installed artifact depends on whichever release and distribution file the package index serves at execution time.Because dependency resolution is not reproducible, future package releases, compromised maintainer credentials, compromised distribution infrastructure, or malicious transitive dependencies could introduce code that was not present during this audit. The skill explicitly permits
Bash(pip3:*), making package installation an expected agent action.The referenced
scripts/akshare_cli.pyfile is absent from the audited project, so its claimed retry, error-handling, and data-processing behavior could not be validated. This absence is a completeness problem rather than evidence that the missing script itself is malicious.Attack Path
- An attacker compromises the upstream
aksharerelease process, package-maintainer account, package-index delivery path, or one of its unresolved transitive dependencies. - The attacker publishes or causes pip to resolve a malicious newer distribution.
- An agent follows the documented environment-preparation instruction and runs
pip install akshare. - Pip downloads and installs the attacker-controlled artifact because no version, hash, lock file, or trusted local artifact constrains resolution.
- Malicious code may execute during source-package build processing or when the installed package is subsequently imported and used.
- The payload operates with the permissions of the account running pip or Python.
Impact Assessment
Successful exploitation could execute arbitrary code with t ...[truncated 400 chars]
- An attacker compromises the upstream
- Remediation
View remediation
Remediation Suggestions
- Pin AkShare to a reviewed exact version, for example
akshare==X.Y.Z. - Maintain a lock file that pins all transitive dependencies rather than constraining only the top-level package.
- Require cryptographic hashes for every resolved artifact, such as with
pip install --require-hashes -r requirements.txt. - Download dependencies through an approved internal mirror or artifact repository and scan them before release.
- Prefer reviewed binary wheels and disable unexpected source builds where feasible.
- Install dependencies inside an isolated virtual environment or container under a non-privileged account.
- Commit the referenced CLI implementation to the package so its behavior and imports can be audited.
- Add automated dependency vulnerability, provenance, and integrity checks to the release process.
- Pin AkShare to a reviewed exact version, for example
