T08 · Insecure Dependencies
- Location
clawhub.json:3- Finding
Unpinned Executable Dependencies Create Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
clawhub.json:3-6,SKILL.md:133-149, andPUBLISHING.md:23-39
Vulnerability Type: Unpinned third-party dependencies and mutable CLI versions
Risk Level: MediumThe project installs
simmer-sdkwithout a version constraint and instructs users to execute the mutablelatestrelease of the ClawHub CLI.json "requires": { "pip": ["simmer-sdk"], "env": ["SIMMER_API_KEY"] }bash npx clawhub@latest publish . --slug auto-trading-winner --version 1.0.0bash npx clawhub@latest install auto-trading-winnerbash npx clawhub@latest publish . --slug auto-trading-winner --bump patchTechnical Analysis
The
simmer-sdkrequirement does not constrain the dependency to a reviewed version or verify its integrity with a cryptographic hash. A future installation can therefore resolve to code that differs from the version used during this audit.The documented
npx clawhub@latestcommands explicitly download and execute whichever package release is currently tagged aslatest. This makes the effective executable mutable after review. Although there is no evidence that either current package is malicious, compromise of a package publisher, registry account, or future release could introduce arbitrary code into the installation or publishing workflow.These dependencies may execute in a process environment containing
SIMMER_API_KEYand optional wallet private keys. The SDK also participates directly in market discovery, account access, and trade submission.Attack Path
- An upstream publisher account, package registry entry, or future package release is compromised or becomes malicious.
- A user installs the skill or follows the publishing instructions.
- The package manager resolves the unconstrained
simmer-sdkrelease or the mutableclawhub@latestrelease. - The downloaded package executes with the invoking use ...[truncated 887 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
simmer-sdkto an exact, reviewed version rather than accepting any available release. - Maintain a lockfile containing cryptographic hashes for all direct and transitive Python dependencies.
- Replace
npx clawhub@latestwith an exact reviewed version, such asnpx clawhub@X.Y.Z. - Use package-manager integrity verification and a trusted internal package mirror where feasible.
- Review dependency updates before adoption and run automated vulnerability and provenance checks in CI.
- Execute publishing and installation operations in an isolated environment without trading or wallet credentials unless they are strictly required.
- Rotate relevant credentials immediately if a dependency version is later identified as compromised.
- Pin
