T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:14-21
Vulnerability Type: Supply-chain risk from an unpinned Python dependency
Risk Level: MediumVulnerable Code
yaml "install": [ { "id": "requests", "kind": "pip", "package": "requests", "label": "安装依赖:pip3 install requests", }, ],Technical Analysis
The skill declares
requestsas a pip dependency without specifying an audited version or package integrity hash. Consequently, the artifact installed in the future may differ from the artifact available when this skill was reviewed.The package name is not an apparent typosquat, and the audit found no evidence that the current
requestspackage is malicious. Nevertheless, unrestricted dependency resolution creates a supply-chain weakness: compromise of the package, one of its transitive dependencies, or the configured Python package index could cause attacker-controlled content to be installed.Attack Path
- An attacker compromises the
requestsdistribution, a resolved transitive dependency, or the package index configured in the target environment. - A user or automation installs the skill dependencies.
- Pip resolves the unrestricted
requestsrequirement to the attacker-controlled release. - The malicious package is installed into the environment.
- Attacker-controlled code executes when the compromised component is imported or otherwise activated.
Impact Assessment
Successful exploitation could execute code with the privileges of the account installing or running the skill. Depending on those privileges, this could expose files, environment variables, API credentials, and network-accessible resources, or allow modification of the runtime environment.
This is a supply-chain exposure rather than evidence of an actively malicious dependency in the reviewed project.
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin
requeststo a specific, audited version rather than allowing unrestricted resolution. - Maintain dependencies in a lock file generated from reviewed package versions.
- Require cryptographic hashes during installation, such as with pip's
--require-hashesoption. - Use a trusted package index or an internally controlled package mirror.
- Regularly scan pinned direct and transitive dependencies for disclosed vulnerabilities.
- Review and deliberately update the lock file instead of automatically accepting new releases.
- Pin
