T08 · Insecure Dependencies
- Location
SKILL.md:47- Finding
Unpinned Third-Party Package Installation Creates Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 47-59
Vulnerability Type: Unpinned third-party dependencies
Risk Level: MediumVulnerable Code
bash pip install galileoFor evaluation features with the legacy prompt engineering interface:
bash pip install promptqualityFor runtime guardrails:
bash pip install galileo-protectTechnical Analysis
The primary installation instructions retrieve mutable latest versions of three third-party packages without version constraints, integrity hashes, or a locked dependency graph. Consequently, the code installed and executed can differ from the version reviewed when this Skill was authored.
Python package installation can execute package build logic, while imported packages subsequently execute with the privileges of the consuming application. If a package release, maintainer account, transitive dependency, or configured package index is compromised, following these instructions could introduce attacker-controlled code. Ordinary upstream changes may also alter telemetry behavior or introduce incompatible or vulnerable dependencies.
The separately documented
promptquality==1.14.0constraint inreferences/PROMPTQUALITY.mdreduces version drift for that alternative installation path, but the main installation instructions remain unpinned and do not verify package integrity.Attack Path
- An attacker compromises a named package, one of its transitive dependencies, a maintainer publishing account, or the package index used by the environment.
- The attacker publishes a malicious release that satisfies the unconstrained installation request.
- A user or agent follows the documented
pip installcommand. pipresolves and downloads the attacker-controlled release because no reviewed version or hash is required.- Malicious build-time code executes during installation, or malicious runtime code executes w ...[truncated 695 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to a reviewed exact version, including
galileo,promptquality, andgalileo-protect. - Generate and maintain a lock file that also constrains transitive dependencies.
- Record cryptographic hashes and install with
pip --require-hasheswhere feasible. - Use a trusted or internally mirrored package index and explicitly configure the permitted index source.
- Scan locked dependencies for known vulnerabilities and review updates before changing pins.
- Install packages in an isolated virtual environment or container as a non-privileged user.
- Reconcile the main installation guidance with the documented SDK compatibility matrix so users cannot accidentally install incompatible major versions.
- Prefer a reviewed requirements file, for example:
bash python -m pip install --require-hashes -r requirements.txtThe requirements file should contain approved exact versions and hashes rather than unconstrained package names.
- Pin every direct dependency to a reviewed exact version, including
