T08 · Insecure Dependencies
- Location
SKILL.md:54- Finding
Unpinned Installation of Third-Party Financial Packages in Skill Instructions
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 54–55
Vulnerability Type: Unpinned third-party dependencies
Risk Level: MediumVulnerable Code Snippet:
markdown - `pip install akshare` - `pip install akquant`Technical Analysis
The installation instructions retrieve the latest available releases of
akshareandakquantwithout exact version constraints or integrity hashes. Consequently, the code installed and executed can differ from the version originally reviewed.Python packages can execute code during installation and whenever imported. If a dependency release, maintainer account, package index, or dependency chain is compromised, following these instructions could introduce attacker-controlled code. The project also does not provide a lock file, hash-verified requirements file, or trusted-index policy to establish a reproducible dependency set.
This finding does not establish that either named package is currently malicious. The risk arises from installing mutable, unaudited package versions without integrity verification.
Attack Path
- An attacker compromises a named package, one of its transitive dependencies, its publisher account, or the package index resolution process.
- The attacker publishes a malicious or backdoored version that still satisfies the unrestricted installation command.
- A user loads the skill and follows its environment setup instructions.
pipresolves and installs the attacker-controlled release.- Malicious code executes during package installation or when the package is imported by the included scripts.
- The payload operates with the privileges and environment access of the user running
pipor the scripts.
Impact Assessment
Successful exploitation could permit arbitrary code execution under the installing user's privileges. Depending on that user's environment, this could expose accessible files, environment variables, f ...[truncated 238 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace unrestricted package names with exact, reviewed versions.
- Maintain dependencies in a lock file or a hash-verified requirements file.
- Require hashes, for example by using
pip install --require-hashes -r requirements.txt. - Pin and review transitive dependencies, not only the two direct dependencies.
- Configure an approved package index explicitly and disable unintended fallback indexes.
- Install into an isolated virtual environment or container using an unprivileged account.
- Run dependency vulnerability and provenance checks in CI before publishing the skill.
- Establish a controlled process for reviewing and updating pinned versions.
