T08 · Insecure Dependencies
- Location
SKILL.md:12- Finding
Unpinned Third-Party Python Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 12-24
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code:
yaml "install": [ { "id": "requests", "kind": "pip", "package": "requests", "label": "安装依赖:pip3 install requests", }, { "id": "pandas", "kind": "pip", "package": "pandas", "label": "安装依赖:pip3 install pandas", }, ],Technical Analysis
The skill declares the
requestsandpandaspackages without fixed versions, integrity hashes, a lock file, or an explicitly trusted package index. Consequently, dependency resolution may install whichever releases are current on the configured Python package index at installation time. The installed code can therefore differ from the code reviewed during this audit.This creates a mutable software-supply-chain boundary. If a future package release, transitive dependency, or configured package index is compromised, malicious code could execute through package build hooks during installation or when the dependency is imported at runtime. No evidence indicates that the currently named packages are malicious; the finding concerns the absence of dependency pinning and integrity verification.
Attack Path
- An attacker compromises a declared package release, one of its resolved transitive dependencies, or the package index used by the environment.
- The compromised component is published as a version satisfying the unrestricted dependency declaration.
- A user installs or updates the skill dependencies.
pipresolves and downloads the attacker-controlled release because no approved version or hash is enforced.- Malicious code executes through an installation/build hook or after the dependency is imported.
- The code operates with the privileges of the account installing or running the skill.
Impact Assessmen
...[truncated 459 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to a reviewed, exact version, for example
requests==X.Y.Zandpandas==X.Y.Z. - Generate a lock file that also fixes all transitive dependency versions.
- Record cryptographic hashes for every approved distribution and install with
pip --require-hashes. - Configure an explicit, trusted package index rather than relying on ambient pip configuration.
- Prefer prebuilt, reviewed wheels and reject unexpected source distributions where practical.
- Run dependency installation and the skill under a minimally privileged, isolated environment.
- Continuously scan locked dependencies for known vulnerabilities and update them through a controlled review process.
- Reproduce dependency installation in CI to verify that only approved package versions and hashes are accepted.
- Pin every direct dependency to a reviewed, exact version, for example
