T08 · Insecure Dependencies
- Location
package.json:8- Finding
Unpinned Executable Dependencies Create Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
package.json:8; additional declarations inrequirements.txt:2-3andSKILL.md:145
Vulnerability Type: Unpinned third-party dependencies and use of a mutable latest release
Risk Level: MediumVulnerable Code
json "install-deps": "pip install -r requirements.txt && playwright install chromium"The associated Python dependency declarations are:
text playwright>=1.40.0 markdown>=3.5.0The installation documentation also recommends:
bash npx clawhub@latest install baijiahao-publishTechnical Analysis
The project installs executable third-party components without exact version or artifact-integrity constraints. The lower-bound specifiers permit package managers to select any later release, while
clawhub@latestexplicitly resolves to a mutable release at installation time.Package installation and Playwright browser setup can execute package-controlled installation logic with the privileges of the user performing the installation. Consequently, the effective installed code can change after this skill has been audited. This is a supply-chain weakness rather than evidence that the currently named dependencies are malicious.
Attack Path
- An upstream package, maintainer account, distribution channel, or newly published dependency version is compromised.
- The attacker publishes a malicious version that satisfies the
>=constraint or controls the release resolved by@latest. - A user follows the documented installation procedure.
- The package manager downloads the unreviewed release and executes its installation or runtime code.
- The malicious component runs under the installing user's account and can access data and resources available to that account.
Impact Assessment
Successful exploitation could result in arbitrary code execution with the privileges of the user installing or invok ...[truncated 317 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every Python dependency to an exact, reviewed version rather than using lower-bound constraints.
- Generate and commit a reproducible lock file containing cryptographic hashes for all direct and transitive dependencies.
- Install dependencies with hash verification enabled, such as
pip install --require-hashes. - Replace
clawhub@latestwith an explicitly reviewed version. - Document the expected package registries and reject untrusted mirrors or extra indexes.
- Add automated dependency scanning and require review before updating lock files.
- Where possible, install and run the skill in an isolated environment with minimal filesystem and credential access.
