T08 · Insecure Dependencies
Warning
- Location
- clawhub.json:5
- Finding
- Unpinned Privileged Third-Party Dependency## Vulnerability Details **File Location**: `clawhub.json:5-9` **Vulnerability Type**: Supply-chain exposure through an unpinned dependency **Risk Level**: Medium ### Vulnerable Code ```json "requires": { "env": [ "SIMMER_API_KEY" ], "pip": [ "simmer-sdk" ] } ``` The dependency is also described in `SKILL.md:136-140`: ```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 installs `simmer-sdk` without an exact version constraint or integrity hash. Consequently, separate installations can resolve to different package releases, including releases published after this project was audited. This dependency is security-sensitive because `trader.py` imports `SimmerClient` from it, supplies it with `SIMMER_API_KEY`, and uses it to submit simulated or live financial trades. Code in the dependency executes in the same Python process and therefore inherits access to the API credential, environment variables, network connectivity, and the trading workflow. The audit found no evidence that the current dependency is malicious. The vulnerability is the absence of controls that guarantee installation of the reviewed dependency version. ### Attack Path 1. An attacker compromises the dependency publisher account, package repository, release pipeline, or an otherwise trusted future release. 2. The attacker publishes a modified `simmer-sdk` version containing malicious initialization or client behavior. 3. A user installs or reinstalls the skill after that release becomes available. 4. Because no version or hash is pinned, the package installer resolves and installs the modified release. 5. `trader.py` imports t ...[truncated 780 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `simmer-sdk` to an exact, reviewed version rather than accepting the latest available release. 2. Use a lock file or hash-checked requirements file so installation fails when package contents do not match approved artifacts. 3. Review release changes before updating the pinned version. 4. Install dependencies from a controlled package index or approved artifact repository where possible. 5. Run the trader under a dedicated, least-privileged account with only the required environment variables. 6. Use a restricted API key with minimal trading authority and rotate it if dependency compromise is suspected. 7. Apply transaction limits and server-side controls that cannot be overridden by dependency code.
