T08 · Insecure Dependencies
- Location
SKILL.md:27- Finding
Unpinned Third-Party Package Installation in a Wallet-Signing Workflow
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 27-31
Vulnerability Type: Supply-chain exposure through an unpinned dependency
Risk Level: MediumVulnerable Code Snippet:
bash First, check if clawpay is installed: pip3 show clawpay If not installed: pip3 install clawpayTechnical Analysis
The Skill instructs the agent to install
clawpaydirectly from the default Python package index without specifying an exact version or validating an integrity hash. Consequently, the package installed during execution may differ from the package that existed when the Skill was reviewed.This is especially sensitive because the installed SDK is subsequently imported into a process that reads a Solana private keypair and performs signed financial transactions. Python package initialization and imported modules can execute arbitrary code with the privileges of the agent process. The repository does not bundle or lock the dependency's source, so the effective SDK implementation cannot be audited from this artifact.
This finding does not establish that the current
clawpaypackage is malicious. The vulnerability is the absence of version and integrity controls around a security-sensitive dependency.Attack Path
- An attacker compromises the package publisher account, the package registry, or an upstream release process.
- The attacker publishes a modified
clawpayrelease under the expected package name. - The agent runs
pip3 install clawpay, which resolves and installs the modified release without a version or hash check. - The workflow imports
Clientfrom the installed package while operating in a wallet-signing context. - Malicious package code executes with the privileges of the agent process.
- The code may read accessible files or environment variables, interfere with transaction construction, substitute recipient addresses, or capture wallet key material when it is pass ...[truncated 602 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to an exact, reviewed version, for example
clawpay==X.Y.Z. - Install from a lock file with cryptographic hashes, using a command such as
pip install --require-hashes -r requirements.txt. - Verify the package publisher, source repository, release provenance, and package contents before approval.
- Use an isolated virtual environment rather than installing into a shared Python environment.
- Prevent automatic dependency upgrades in production wallet-signing environments.
- Review the complete transitive dependency tree and pin those packages as well.
- Run the SDK in a restricted process with minimal filesystem and network permissions.
- Prefer an external or hardware-backed signer so dependency code never receives raw private-key material.
- Pin the dependency to an exact, reviewed version, for example
