T08 · Insecure Dependencies
- Location
SKILL.md:52- Finding
Unpinned Third-Party Skills Installed from a Mutable Registry
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 52-60; the same installation pattern is also documented inREADME.md, lines 47-60
Vulnerability Type: T08: Insecure Dependencies
Risk Level: MediumVulnerable Code
bash # For sensor-bridge: clawhub install pilot-stream-data pilot-metrics pilot-gossip # For model-engine: clawhub install pilot-dataset pilot-task-router pilot-consensus # For anomaly-detector: clawhub install pilot-event-filter pilot-alert pilot-audit-log # For action-planner: clawhub install pilot-webhook-bridge pilot-cron pilot-slack-bridgeThe corresponding commands in
README.mdare:bash # On sensor bridge node clawhub install pilot-stream-data pilot-metrics pilot-gossip pilotctl set-hostname <your-prefix>-sensor-bridge # On model engine node clawhub install pilot-dataset pilot-task-router pilot-consensus pilotctl set-hostname <your-prefix>-model-engine # On anomaly detector node clawhub install pilot-event-filter pilot-alert pilot-audit-log pilotctl set-hostname <your-prefix>-anomaly-detector # On action planner node clawhub install pilot-webhook-bridge pilot-cron pilot-slack-bridge pilotctl set-hostname <your-prefix>-action-plannerTechnical Analysis
The setup procedure installs twelve external skills using only mutable package names. It does not specify reviewed versions, immutable content digests, trusted publisher identities, cryptographic signatures, a dependency lockfile, or a verification step.
Consequently, the content installed at deployment time may differ from the content that was originally reviewed. This creates a supply-chain trust boundary around the external
clawhubregistry and the publisher accounts for all named packages. The source and implementation of these dependencies are not included in the audited project, so their safety cannot be established from the available files.The affected dependencies are:
pilot-stream-data- `pilot-metric ...[truncated 2180 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every dependency to a reviewed, immutable version rather than installing by package name alone.
- Prefer cryptographic content digests where supported, for example a package reference bound to a SHA-256 digest.
- Record resolved versions and digests in a committed dependency lockfile.
- Verify package signatures and publisher identities before installation.
- Restrict installation to an explicitly approved registry and disable untrusted fallback sources or namespace resolution.
- Download dependencies into a staging environment and review their Skill instructions, scripts, manifests, requested tools, and transitive dependencies before deployment.
- Add an automated policy that rejects packages whose resolved digest differs from the approved lockfile.
- Maintain an allowlist of approved package names, publishers, versions, and hashes.
- Run installed skills with least privilege, isolated credentials, restricted filesystem access, and role-specific network egress controls.
- Separate installation privileges from runtime privileges so a deployed agent cannot update or replace its own dependencies.
- Monitor registry advisories and publisher changes, and require explicit review before updating any pinned dependency.
- Update both
SKILL.mdandREADME.mdso all installation examples use the same verified and immutable dependency references.
