T08 · Insecure Dependencies
- Location
SKILL.md:57- Finding
Unpinned Third-Party Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 57–62
Vulnerability Type: Unverified and unpinned package installation
Risk Level: MediumVulnerable Code Snippet:
bash ## Installation ```bash pip install clawwatch # No API keys needed for crypto! Works out of the box. # Optional: set CoinCap key for higher rate limits clawwatch config --coincap-key YOUR_KEY # optionaltext ### Technical Analysis The skill instructs users or agents to install `clawwatch` from pip without specifying an exact version, package hash, trusted repository URL, or verified publisher identity. The project contains no dependency lockfile or local implementation that would allow the installed executable to be compared with audited source code. Consequently, package resolution is mutable: the code installed by the same command can change over time. If the package name is controlled by an unintended publisher, the package distribution is compromised, or a later release becomes malicious, installation may execute arbitrary package build or installation logic. Subsequent `clawwatch` commands would then run the package's executable under the identity of the invoking user. The nearby API-key configuration instruction increases the potential sensitivity of the installed program because it may receive and store a CoinCap key. The CLI documentation also describes a Finnhub key and files beneath `~/.clawwatch`, although the audited project does not include the executable implementation needed to verify how those values are handled. ### Attack Path 1. An attacker compromises the resolved `clawwatch` package, its publisher account, or the relevant package-distribution channel, or publishes malicious code in a future version. 2. A user or agent follows `SKILL.md` and runs `pip install clawwatch`. 3. pip resolves the current mutable release because no version or cryptographic hash is pinned. 4. Malicious build hooks, in ...[truncated 1012 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a specifically reviewed release, for example
clawwatch==X.Y.Z. - Record and enforce cryptographic hashes using a requirements file and
pip install --require-hashes. - Document the authoritative package repository, source repository, publisher identity, and release-signing or provenance information.
- Include the executable source in the audited project or link each pinned release to immutable, reviewable source.
- Use a lockfile generated from reviewed dependencies and verify all transitive dependencies.
- Install the package in an isolated virtual environment with minimum filesystem and credential access.
- Avoid exposing API keys through command-line arguments where they may appear in shell history or process listings. Prefer a protected configuration file, operating-system credential store, or securely read environment variable.
- Add automated dependency-integrity and provenance checks to the release process before updating the pinned version.
- Pin the dependency to a specifically reviewed release, for example
