T08 · Insecure Dependencies
Warning
- Location
- clawhub.json:2
- Finding
- Unpinned Security-Sensitive Trading Dependency<![CDATA[ ## Vulnerability Details **File Location**: `clawhub.json:2-6` **Additional Location**: `SKILL.md:37-45` **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: Medium ### Vulnerable Code ```json "requires": { "env": ["SIMMER_API_KEY"], "pip": ["simmer-sdk"] } ``` The installation documentation also instructs users to install the package without a version constraint or integrity verification: ```bash pip install simmer-sdk ``` ### Technical Analysis The Skill relies on `simmer-sdk` without pinning an exact reviewed version or providing package hashes. The dependency is security-sensitive because `market_maker.py` passes the user's `SIMMER_API_KEY` to `SimmerClient`, and the SDK is responsible for authenticated portfolio access and live trading operations. An unconstrained installation resolves whichever package version the configured Python package index currently considers latest. Consequently, the code ultimately executed can change after this Skill has been audited. A compromised publisher account, malicious future release, package-index compromise, or dependency-resolution error could introduce code with access to the API credential and the process's other ambient privileges. No evidence in the audited repository establishes that `simmer-sdk` is currently malicious. The vulnerability is the absence of dependency pinning and integrity controls around a package entrusted with credentials and financial operations. ### Attack Path 1. An attacker compromises the package publisher, distribution channel, or a future `simmer-sdk` release. 2. The attacker publishes a malicious version under the same package name. 3. A user follows the documented `pip install simmer-sdk` instruction or the Skill platform installs the unconstrained manifest dependency. 4. Package installation hooks or imported package code execute on the user's system. 5. When `get_client()` initializes the SDK, the malicious code can access the supplied API ...[truncated 874 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `simmer-sdk` to an exact version that has been reviewed, for example: ```json "pip": ["simmer-sdk==<reviewed-version>"] ``` 2. Replace the installation instruction with the same exact version constraint. 3. Use a lockfile or requirements file containing cryptographic hashes, and install with hash verification: ```bash pip install --require-hashes -r requirements.txt ``` 4. Retrieve packages only from an explicitly configured, trusted package index. 5. Review SDK release changes before upgrading rather than accepting automatic latest-version resolution. 6. Use a narrowly scoped API key with only the permissions necessary for this strategy. 7. Run the Skill in an isolated environment without unrelated secrets, sensitive files, or unnecessary operating-system privileges. ]]>
