T08 · Insecure Dependencies
- Location
SKILL.md:83- Finding
Unpinned Third-Party Packages Are Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Locations:
SKILL.md:83-93scripts/check-skills-sh.sh:41-48scripts/publish-clawhub.sh:32-34
Vulnerability Type: Unpinned third-party dependencies and automatically accepted remote package execution
Risk Level: MediumVulnerable Code
From
SKILL.md:83-93:bash If `weave` is missing, provide compliant install guidance and ask before running: ```bash go install github.com/AryanJ-NYC/weave-cash/apps/cli/cmd/weave@latest weave --helpIf Go is unavailable, use npm fallback:
bash npm i -g weave-cash-cli weave --helptext From `scripts/check-skills-sh.sh:41-48`: ```bash npm_config_cache="${npm_cache_dir}" npx -y skills add "${source_spec}" --list echo "Searching skills index for '${query}'..." npm_config_cache="${npm_cache_dir}" npx -y skills find "${query}" if [[ "${run_install_check}" == "1" ]]; then echo "Running optional install smoke check for agent '${agent_name}'..." npm_config_cache="${npm_cache_dir}" npx -y skills add "${source_spec}" --yes --agent "${agent_name}" fiFrom
scripts/publish-clawhub.sh:32-34:bash if command -v npx >/dev/null 2>&1; then export NPM_CONFIG_CACHE="${NPM_CONFIG_CACHE:-/tmp/npm-cache}" clawhub_cmd=(npx -y clawhub)Technical Analysis
The Go installation command uses the mutable
@latestselector, while the npm installation andnpxinvocations do not specify exact package versions. Consequently, the effective code downloaded and executed can change after this Skill has been reviewed.The
npx -yoption automatically accepts package installation without interactive confirmation. These commands therefore establish a supply-chain execution path from public package registries to the local system. No lockfile, package integrity value, immutable commit, or reviewed version constraint is used.This is particularly sensitive because the Weave CLI process ...[truncated 1837 chars]
- Remediation
View remediation
Remediation Suggestions
-
Replace
@latestwith a reviewed, immutable Go module version:bash go install github.com/AryanJ-NYC/weave-cash/apps/cli/cmd/weave@vX.Y.Z -
Pin the npm package to an exact reviewed version:
bash npm install --global --save-exact weave-cash-cli@X.Y.Z -
Pin every
npxtool invocation:bash npx -y skills@X.Y.Z add "${source_spec}" --list npx -y skills@X.Y.Z find "${query}" npx -y clawhub@X.Y.Z publish ... -
Review package provenance, publisher identity, checksums, signatures, and release notes before updating pinned versions.
-
Use lockfiles and integrity metadata wherever the package workflow supports them.
-
Run dependency-backed publication tooling in an isolated, least-privileged environment with only the credentials required for the immediate operation.
-
Avoid exposing wallet secrets, private keys, unrelated credentials, or long-lived publication tokens to package installation processes.
-
Introduce an explicit dependency-update process in which version changes are reviewed and tested before merging.
-
