T08 · Insecure Dependencies
- Location
SKILL.md:11- Finding
Unpinned Third-Party Runtime Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:11-12andSKILL.md:33
Vulnerability Type: Unpinned third-party dependencies
Risk Level: MediumVulnerable code at lines 11-12:
yaml - kind: uv packages: [fastapi, uvicorn, pydantic]Vulnerable code at line 33:
bash pip install fastapi uvicorn pydanticTechnical Analysis
The installation metadata and documented installation command specify package names without exact versions, integrity hashes, or a lockfile. Consequently, the package resolver retrieves whichever compatible releases are available at installation time. The resulting environment is not reproducible and may contain newly introduced vulnerabilities, incompatible changes, or compromised package releases that were not present during the Skill review.
The dependency names are consistent with the Skill's functionality, and there is no evidence of typosquatting, dependency confusion, or an unsafe package index in the audited files. The risk arises from mutable dependency resolution rather than from a currently identified malicious package.
Attack Path
- An attacker compromises a future release, maintainer account, or distribution path of one of the named dependencies.
- The compromised release is published under the legitimate package name.
- A user installs the Skill by using its metadata or documented
pip installcommand. - Because no version or hash is enforced, the package manager resolves and downloads the compromised release.
- Attacker-controlled code executes during package installation, application startup, or request processing.
This path is conditional on compromise of the dependency supply chain; no such active compromise was identified in the project.
Impact Assessment
A compromised dependency could execute code with the privileges of the account installing or running PromptGuard. Depending on the deployment environment, ...[truncated 502 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin each direct dependency to an exact, reviewed version in both the installation metadata and user-facing installation instructions.
- Generate and commit a lockfile that includes resolved transitive dependencies.
- Use cryptographic hashes for downloaded distributions, such as a hash-locked requirements file installed with
pip install --require-hashes. - Install packages only from an explicitly configured trusted package index.
- Add automated dependency vulnerability and provenance scanning to the release process.
- Regularly update dependencies through a controlled review process, rerunning tests and security checks before changing locked versions.
- Keep
SKILL.mdinstallation metadata synchronized with the lockfile or pinned requirements to prevent alternative unpinned installation paths.
