T08 · Insecure Dependencies
- Location
SKILL.md:10- Finding
Unpinned Package Installation and Unverified Runtime Model Download
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 10–13 and 31–40
Vulnerability Type: Supply-chain risk from unpinned dependencies and an unverified runtime artifact
Risk Level: MediumVulnerable Code Snippet
yaml compatibility: > Requires the clawgrep binary on PATH. Works on Linux, macOS, and Windows. No API keys needed. On first run, downloads a small ONNX embedding model (~30 MB) from Hugging Face and caches it locally. Subsequent runs are fully offline. Install via cargo, npm, or pip.markdown If not found, install from the [open-source repository](https://github.com/Schonhoffer/clawgrep) using any of these methods (only one needed): ```bash cargo install clawgrep # Rust (recommended) npm install -g clawgrep # Node.js pip install clawgrep # Pythontext ### Technical Analysis The documented installation commands resolve `clawgrep` by package name without pinning an exact reviewed version or requiring a lockfile, checksum, package signature, or provenance verification. Although the surrounding text links to a source repository, these commands install artifacts from the Cargo, npm, and Python package registries rather than directly verifying content against that repository. The Skill also states that the installed executable downloads an ONNX model from Hugging Face on its first run. The documentation does not identify an immutable model revision, artifact filename, or expected cryptographic digest. Consequently, the effective component used at runtime can differ from what was reviewed. This is a supply-chain weakness rather than evidence that the current packages or model are malicious. Exploitation requires compromise, replacement, or deceptive publication of one of the externally resolved artifacts. ### Attack Path 1. An attacker compromises a relevant registry publisher account, distribution process, or model-hosting artifact, or succeeds in publishing a deceptive package thro ...[truncated 1520 chars]- Remediation
View remediation
Remediation Suggestions
- Pin each installation method to a specific reviewed release rather than resolving the latest package:
- Use an exact Cargo version with locked dependency resolution where supported.
- Use an exact npm version and document the expected integrity/provenance information.
- Use an exact Python version with hashes, such as a hash-locked requirements file.
- Publish and document cryptographic SHA-256 digests or verifiable signatures for release artifacts.
- Document the official publisher identity for every registry so users can detect similarly named or unauthorized packages.
- Prefer reproducible builds or signed release binaries obtained from a trusted, immutable release.
- Pin the Hugging Face model to an immutable repository revision or commit and specify the exact artifact filename and expected digest.
- Verify the model digest before loading it and reject mismatches. Download to a temporary file, validate it, and only then atomically move it into the cache.
- Avoid global or elevated installation unless it is strictly necessary. Recommend isolated user-level environments or containers with least-privilege filesystem and network access.
- Document cache ownership and permission requirements so other local users cannot replace cached artifacts.
- Add a controlled update procedure requiring review and digest updates whenever the package or model version changes.
- Pin each installation method to a specific reviewed release rather than resolving the latest package:
