T08 · Insecure Dependencies
- Location
SKILL.md:37- Finding
Unpinned Third-Party Package Installation Creates a Supply-Chain Execution Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:37-45;skill.json:27-33
Vulnerability Type: Unpinned and unverified third-party dependencies
Risk Level: MediumThe skill directs users to install the
swarm-safetypackage and several optional dependency sets without specifying immutable versions, package hashes, or a reviewed dependency lockfile.Relevant code from
SKILL.md:37-45:bash # From PyPI pip install swarm-safety # With LLM agent support pip install swarm-safety[llm] # Full development (all extras) git clone https://github.com/swarm-ai-safety/swarm.git cd swarm pip install -e ".[dev,runtime]"Relevant code from
skill.json:27-33:json "install": { "pip": "pip install swarm-safety", "source": "pip install -e \".[dev,runtime]\"", "with_api": "pip install swarm-safety[api]", "with_llm": "pip install swarm-safety[llm]", "with_all": "pip install swarm-safety[all]" }Technical Analysis
A package installation can execute package build hooks and installs code that will subsequently execute when imported or invoked. Because the installation commands do not pin an exact reviewed release or verify artifact hashes, the installed content can change independently of this skill artifact.
Optional extras such as
api,llm,runtime, andallalso expand the transitive dependency graph. The audited project contains onlySKILL.mdandskill.json; it does not include the referenced package implementation, dependency manifests, lockfiles, hashes, or vendored source. Consequently, the behavior and integrity of the executable package and its transitive dependencies cannot be established from the audited artifact.This finding does not establish that the current upstream package is malicious. It identifies an unsafe, mutable supply-chain trust boundary through which a compromised package release, compromised upstream account, dependency-confusio ...[truncated 1631 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the package to an exact, reviewed version rather than installing an unconstrained latest release.
- Publish a lockfile covering every supported optional dependency set, including all transitive dependency versions.
- Record cryptographic hashes for approved distributions and install with hash enforcement, such as
pip --require-hashes. - Reference an immutable Git commit when source installation is required instead of relying on a mutable default branch.
- Review package build configuration and dependency installation hooks before recommending execution.
- Install the package in an isolated virtual environment or container using a non-privileged account.
- Separate optional features so users install only the minimum dependency set required for their task.
- Add automated dependency vulnerability, provenance, and package-name-confusion checks to the release process.
- Include the reviewed package source or a verifiable source archive in the audit scope so its claimed behavior can be validated.
