T08 · Insecure Dependencies
- Location
SKILL.md:10- Finding
Unpinned Third-Party Python Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 10-18
Vulnerability Type: Unpinned package installation and supply-chain exposure
Risk Level: LowVulnerable Code Snippet:
yaml "install": [ { "id": "requests", "kind": "pip", "package": "requests", "label": "安装依赖:pip3 install requests", }, ],Technical Analysis
The skill declares the PyPI package
requestswithout specifying an exact version or an integrity hash. Consequently, the package version installed depends on the state of the configured package index at installation time. This prevents reproducible dependency resolution and makes the reviewed skill configuration insufficient to determine the exact code that will ultimately be installed.The named
requestspackage is legitimate, and the audited file contains no evidence that it intentionally selects a malicious or typosquatted package. Exploitation therefore depends on an external supply-chain event, such as compromise of a package release, compromise or misconfiguration of the package index, or substitution through an untrusted package mirror. The absence of a lock file also leaves transitive dependency versions uncontrolled.Attack Path
- A user or automated skill installer processes the dependency declaration.
- The installer resolves
requestsand its transitive dependencies from the configured Python package index without enforcing reviewed versions or hashes. - An attacker who has compromised the package source, release process, dependency resolution path, or configured mirror supplies a modified package artifact.
- The installer downloads and installs that artifact.
- Malicious installation hooks or imported package code execute with the privileges of the installation or runtime process.
This path is conditional; the audited project itself contains no malicious package payload, package-index override, or direct ...[truncated 541 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
requeststo an explicitly reviewed version rather than allowing unconstrained resolution. - Maintain a lock file that fixes all transitive dependency versions.
- Require cryptographic hashes for downloaded distributions, such as through a hash-locked requirements file and
pip install --require-hashes. - Retrieve packages only from an approved, authenticated package index or controlled internal mirror.
- Periodically scan pinned dependencies for known vulnerabilities and update them through a reviewed process.
- Prefer prebuilt, verified artifacts and perform installation in an isolated, least-privileged environment.
- Pin
