T08 · Insecure Dependencies
- Location
SKILL.md:22- Finding
Unpinned Third-Party Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 22-29
Vulnerability Type: Unpinned Python dependency
Risk Level: MediumVulnerable Code
json "install": [ { "id": "pip-deps", "kind": "python", "package": "httpx", "label": "Install Python dependencies" } ]Technical Analysis
The installation configuration requests the
httpxpackage without specifying an exact version or an integrity hash. Consequently, installations performed at different times can resolve to different package versions.Although
httpxis the expected dependency imported byscripts/generate_answer.pyand no suspicious package source is configured, the absence of version and integrity constraints creates a supply-chain exposure. A compromised, malicious, or unexpectedly incompatible future release could be selected automatically during installation. Python packages may execute code during installation or later when imported, so compromise of the resolved dependency could lead to arbitrary code execution.There is no evidence in the reviewed project that the dependency is currently malicious. The risk arises from unconstrained future dependency resolution.
Attack Path
- An attacker compromises the package publisher account, distribution channel, or a future release of the dependency.
- The attacker publishes a malicious version under the legitimate package name.
- A user installs the Skill after that version becomes eligible for dependency resolution.
- The installer resolves and downloads the malicious version because no exact version or integrity hash is required.
- Attacker-controlled code executes during package installation or when
httpxis imported by the Skill. - The code runs with the permissions of the installation or Skill runtime account.
Impact Assessment
Successful exploitation could permit arbitrary code execution within the security context of the user installing or running the Skill. Depending ...[truncated 444 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
httpxto an exact, reviewed version rather than allowing unconstrained resolution. - Maintain dependencies in a lock file generated by a trusted package-management workflow.
- Require cryptographic hashes for downloaded distributions, such as with pip's
--require-hashesoption and a hash-locked requirements file. - Install packages only from a trusted, explicitly configured package index.
- Perform dependency vulnerability and provenance scanning in CI before publishing the Skill.
- Review and deliberately update the pinned version on a controlled schedule rather than accepting new releases automatically.
- Run installation and execution in a least-privileged, isolated environment to reduce the impact of a compromised dependency.
- Pin
