T08 · Insecure Dependencies
Warning
- Location
- clawhub.json:7
- Finding
- Unpinned Third-Party Trading SDK Creates a Supply-Chain Risk<![CDATA[ ## Vulnerability Details **File Location**: `clawhub.json:7-9`; supporting documentation at `SKILL.md:114-121` **Vulnerability Type**: Unpinned executable dependency **Risk Level**: Medium ### Vulnerable Code ```json "pip": [ "simmer-sdk" ] ``` The documentation confirms that this package is obtained from PyPI and receives access to a live-capable trading credential: ```markdown ## Dependency `simmer-sdk` is published on PyPI by Simmer Markets. - PyPI: https://pypi.org/project/simmer-sdk/ - GitHub: https://github.com/SpartanLabsXyz/simmer-sdk - Publisher: hello@simmer.markets Review the source before providing live credentials if you require full auditability. ``` ### Technical Analysis The project declares `simmer-sdk` without an exact version, lockfile, or package-integrity hash. Consequently, installation can resolve to a package release that differs from the release originally reviewed. This dependency is imported and executed by `trader.py` and is given `SIMMER_API_KEY`. In live mode it is also used to submit Polymarket trades. A compromised upstream release, publisher account, package distribution channel, or dependency of `simmer-sdk` could therefore execute arbitrary Python code in the skill's process with the same operating-system privileges and environment access as the skill. No evidence was found that the current package is malicious. The vulnerability is the absence of reproducible, integrity-verified dependency resolution. ### Attack Path 1. An attacker compromises the `simmer-sdk` publisher account, distribution pipeline, or an unpinned transitive dependency. 2. The attacker publishes a malicious package version that remains compatible with the unrestricted package name. 3. A user installs or reinstalls the skill. 4. The package manager resolves `simmer-sdk` to the malicious release. 5. The malicious code executes when Python imports or invokes the SDK. 6. It can read `SIMMER_API_KEY`, alter returned market information, mod ...[truncated 833 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `simmer-sdk` to a specifically audited version, for example by using an exact `==` constraint. 2. Use a lockfile that also pins all transitive dependencies. 3. Require package hashes during installation, such as through a hash-locked requirements file. 4. Verify the package's publisher, source repository, release signatures, and build provenance. 5. Review dependency updates before changing the pinned version. 6. Use a dedicated, least-privileged API key with restricted trading limits where supported. 7. Run the skill in an isolated environment with minimal filesystem access and no unrelated credentials. 8. Add automated dependency vulnerability and integrity scanning to the release process. ]]>
