T08 · Insecure Dependencies
- Location
SKILL.md:13- Finding
Unpinned Third-Party Python Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 13-25
Vulnerability Type: Unpinned third-party dependencies without integrity verification
Risk Level: MediumVulnerable Code
yaml [ { "id": "requests", "kind": "pip", "package": "requests", "label": "安装依赖:pip3 install requests", }, { "id": "pandas", "kind": "pip", "package": "pandas", "label": "安装依赖:pip3 install pandas", },Technical Analysis
The skill installation metadata requests the
requestsandpandaspackages without exact version constraints or cryptographic hashes. Consequently, dependency resolution selects whatever compatible release is available from the configured Python package index at installation time.This makes installations non-reproducible and prevents verification that the installed artifacts are the versions reviewed by the skill author. If the configured package index, dependency resolution path, package release, or a transitive dependency is compromised, installation may introduce attacker-controlled code. Python packages can execute code through build backends or installation hooks, while malicious package content can also execute when imported at runtime.
The package names themselves correspond to established projects, and the artifact does not specify an untrusted package index. Therefore, no active dependency-confusion or typosquatting attack is demonstrated; the confirmed weakness is the absence of version pinning and integrity controls.
Attack Path
- A user or automated skill manager installs the dependencies declared in
SKILL.md. - The installer resolves
requestsandpandasusing mutable, unconstrained package specifications. - A compromised package release, transitive dependency, mirror, index configuration, or build artifact i ...[truncated 666 chars]
- A user or automated skill manager installs the dependencies declared in
- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to an explicitly reviewed version, such as
requests==X.Y.Zandpandas==A.B.C. - Generate and commit a lockfile that records all transitive dependencies.
- Require cryptographic hashes for downloaded distributions, for example through a hash-locked requirements file and
pip install --require-hashes. - Use the official Python Package Index or a controlled internal mirror, and explicitly restrict trusted package sources.
- Prefer prebuilt, reviewed wheels and disable unnecessary source builds where operationally feasible.
- Install dependencies inside an isolated virtual environment using a non-privileged account.
- Add automated dependency vulnerability scanning and a controlled update process so pinned versions receive reviewed security updates.
- Pin every direct dependency to an explicitly reviewed version, such as
