T08 · Insecure Dependencies
- Location
SKILL.md:37- Finding
Unpinned Third-Party Package Installation and Automatic Upgrades
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:37-40andSKILL.md:102-108
Vulnerability Type: Unverified and mutable third-party dependency installation
Risk Level: MediumVulnerable Code
SKILL.md:37-40:bash pip install pairpulseSKILL.md:102-108:bash pip install --upgrade pairpulseTechnical Analysis
The skill instructs an agent to install and subsequently upgrade the
pairpulsepackage from PyPI without specifying an exact version, cryptographic hash, lockfile, or package-signature verification procedure. Consequently, the code installed at runtime can differ from the code that was reviewed during this audit.Python package installation may execute package-controlled build or installation logic with the privileges of the invoking user. The automatic upgrade recommendation further increases exposure because every future release becomes implicitly trusted without an intervening security review.
The repository contains only
SKILL.md; it does not include the referenced package implementation. Therefore, the package's runtime behavior and the claim that customer data remains local cannot be independently verified from the audited artifact.Attack Path
- An attacker compromises the PyPI publisher account, distribution process, upstream source, or another component of the package supply chain.
- The attacker publishes a malicious version of
pairpulse. - An agent follows the skill instructions and runs
pip install pairpulseorpip install --upgrade pairpulse. - Pip retrieves the mutable, attacker-controlled release and may execute package build or installation code.
- The malicious package runs with the invoking user's permissions.
- During installation or later analysis, it can access files available to that user, including the order data passed to the tool, and communicate with external systems if network access is available.
Impact Assess
...[truncated 689 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
pairpulseto an exact, security-reviewed version instead of installing the latest available release. - Download and review the package and its transitive dependencies before approving them for use.
- Require cryptographic hashes through a locked requirements file and install with
pip --require-hashes. - Remove the automatic upgrade recommendation. Treat each upgrade as a controlled change requiring review, testing, and explicit approval.
- Verify package publisher and source-repository provenance before installation.
- Use a dedicated virtual environment or isolated container with minimal filesystem permissions and no unnecessary credentials.
- Disable outbound network access while processing sensitive order data unless it is explicitly required and approved.
- Run the package as a nonprivileged user and grant access only to the specific input and output paths needed for the analysis.
- Document the reviewed version and hashes directly in the skill so that installations are reproducible.
- Pin
