T08 · Insecure Dependencies
Warning
- Location
- clawhub.json:6
- Finding
- Unpinned Third-Party Trading Dependency Creates a Supply-Chain Risk<![CDATA[ ## Vulnerability Details **File Location**: `clawhub.json:6-9` **Additional Location**: `SKILL.md:119-122` **Vulnerability Type**: Unpinned executable dependency **Risk Level**: Medium ### Vulnerable Code ```json "requires": { "env": [ "SIMMER_API_KEY" ], "pip": [ "simmer-sdk" ] } ``` The documentation identifies the dependency but does not constrain its version: ```markdown ## Dependency `simmer-sdk` by Simmer Markets (SpartanLabsXyz) - PyPI: https://pypi.org/project/simmer-sdk/ - GitHub: https://github.com/SpartanLabsXyz/simmer-sdk ``` ### Technical Analysis The project installs `simmer-sdk` without an exact version constraint or package-integrity hash. Consequently, installations performed at different times may resolve to different and mutable package releases. This dependency operates in a security-sensitive context: it receives `SIMMER_API_KEY`, performs remote market discovery, and submits simulated or real financial trades. A compromised upstream release, malicious maintainer update, or package-index compromise could therefore introduce arbitrary installation-time or runtime behavior without any modification to the audited project. The external dependency source was not included in the project and was outside the static audit scope. No claim is made that its current release is malicious; the issue is the absence of controls that ensure the reviewed dependency remains the dependency that is installed. ### Attack Path 1. An attacker compromises the upstream package publisher, release process, or package-index account. 2. The attacker publishes a malicious or backdoored version under the existing `simmer-sdk` package name. 3. A user installs or deploys this Skill without a lock file or exact version constraint. 4. The package resolver selects the attacker-controlled release. 5. Dependency code executes during installation or when `SimmerClient` is imported and initialized. 6. The malicious dependency can access the p ...[truncated 601 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `simmer-sdk` to a reviewed exact version rather than an unconstrained package name. 2. Use a lock file containing cryptographic hashes, or install with `pip --require-hashes`. 3. Verify package provenance and compare the package artifact against the reviewed upstream source. 4. Run dependency vulnerability and integrity checks in CI. 5. Review dependency updates before changing the pin; do not automatically accept new releases. 6. Restrict the API key to the minimum trading permissions and financial limits supported by the service. 7. Run the Skill in an isolated environment with limited filesystem and network privileges. ]]>
