T08 · Insecure Dependencies
- Location
SKILL.md:12- Finding
Unpinned Third-Party SDK Installation Creates a Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:12-16
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: MediumThe skill instructs the agent to install the Polymarket SDK directly from the default Python package index without pinning a version, verifying package hashes, or using a dependency lockfile:
markdown ## Setup Ensure the SDK is installed: ```bash pip install polymarket-ustext ### Technical Analysis The command installs the latest package version available under the `polymarket-us` name, along with its transitive dependencies. The project does not specify an audited version, cryptographic hashes, a trusted package source, or a reproducible dependency manifest. Python package installation can execute package build and installation logic. Runtime code from the installed SDK is also entrusted with the Polymarket API key identifier and Ed25519 private signing key documented elsewhere in the skill. Consequently, a compromised upstream release, package-index account, or transitive dependency could execute attacker-controlled code and access sensitive trading credentials. This finding does not establish that the current `polymarket-us` package is malicious. It identifies an unsafe dependency acquisition practice that leaves future installations exposed to upstream or package-distribution compromise. ### Attack Path 1. An attacker compromises the package publisher, package-index account, release pipeline, or a transitive dependency. 2. The attacker publishes a malicious version that remains compatible with the unpinned package name. 3. An agent follows the skill instructions and runs `pip install polymarket-us`. 4. Pip selects and installs the attacker-controlled release because no approved version or hash is enforced. 5. Malicious installation or runtime code executes in the agent's Python environment. 6. When authenticated functionality is used, the compromise ...[truncated 934 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the SDK to a specifically reviewed version, for example with an exact
==constraint. - Generate and maintain a lockfile that fixes all transitive dependency versions.
- Require cryptographic package hashes, such as through a hash-locked requirements file and
pip install --require-hashes. - Verify that the package originates from the official publisher and document the expected package index and provenance.
- Review new SDK versions and their dependency changes before updating the approved pin.
- Install the package in an isolated virtual environment or container under an unprivileged account.
- Use trading credentials with the minimum permissions available, rotate them after suspected dependency compromise, and avoid exposing unrelated secrets to the process.
- Where feasible, validate order details immediately before submission and enforce transaction limits independently of the SDK.
- Pin the SDK to a specifically reviewed version, for example with an exact
