T08 · Insecure Dependencies
- Location
SKILL.md:7- Finding
Unpinned Third-Party Python Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 7–8 and 20–22
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: MediumVulnerable code:
yaml requires: pip: [uqlm]bash # Install pip install uqlmTechnical Analysis
The skill requires users to install
uqlmdirectly from the package index without specifying an exact version, cryptographic hashes, a lockfile, or an independently reviewed source artifact. Its transitive dependencies are likewise unconstrained.Consequently, the code installed can change between installations without any modification to this skill package. If the upstream package, a maintainer account, its publishing process, or one of its transitive dependencies is compromised, users may retrieve attacker-controlled code. Python package installation can invoke package build hooks when source distributions require building, while importing or executing the installed package runs package-controlled code.
The project contains no local implementation of the documented
hallucination-checkexecutable,hallucination_check.check_textAPI, or rule-based fallback. Therefore, the dependency's relevant behavior could not be verified from the submitted project.Attack Path
- An attacker compromises an upstream
uqlmrelease, its publishing account, distribution infrastructure, or a dependency selected during package resolution. - The attacker publishes a malicious package version or dependency release that remains compatible with the unconstrained requirement.
- A user follows the documented
pip install uqlminstruction. pipresolves and downloads the attacker-controlled release because no exact version or trusted artifact hash is enforced.- Malicious code executes through package build hooks, package import, or subsequent use of the installed functionality.
- The payload operates with the privileges and environme ...[truncated 649 chars]
- An attacker compromises an upstream
- Remediation
View remediation
Remediation Suggestions
- Pin
uqlmto a specific version that has been reviewed and tested rather than accepting the latest compatible release. - Generate a lockfile that records all transitive dependency versions.
- Require cryptographic hashes for every downloaded artifact, such as through a hash-locked requirements file and
pip install --require-hashes. - Document the expected official package source and reject untrusted or unexpected package indexes.
- Review the pinned package and its transitive dependencies for installation hooks and unsafe runtime behavior.
- Install and run the dependency in an isolated, least-privilege virtual environment or container without unnecessary credentials or filesystem access.
- Include the claimed local implementation in the project or explicitly document that all functionality is supplied by the external package, enabling reviewers to identify the actual trust boundary.
- Use automated dependency monitoring and repeat the security review before updating any pinned version or artifact hash.
- Pin
