T08 · Insecure Dependencies
- Location
SKILL.md:13- Finding
Unpinned Runtime Dependency Receives Sensitive X Account Credentials
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 13–16
Vulnerability Type: Unpinned third-party runtime dependency
Risk Level: MediumVulnerable Code Snippet
yaml install: - id: "npm" kind: "node" package: "@xonder/clawbird" label: "Install clawbird plugin (npm)"The associated trust statement at
SKILL.md, lines 67–80, confirms that the executable implementation is obtained from npm at installation time rather than included in the reviewed artifact:markdown Clawbird is an npm-distributed skill — the runtime code is installed via `npm i -g @xonder/clawbird` and is not bundled in the ClawHub skill archive. The security properties below can be verified by auditing the source: - **Source:** https://github.com/xonder/clawbird (MIT) - **npm:** https://www.npmjs.com/package/@xonder/clawbird - Makes **no network requests** other than to `api.x.com` ([source: `src/client.ts`](https://github.com/xonder/clawbird/blob/main/src/client.ts)) - Reads and writes **one local file** (`clawbird-interactions.jsonl`) for session interaction logging — no other filesystem access ([source: `src/interaction-log.ts`](https://github.com/xonder/clawbird/blob/main/src/interaction-log.ts)) - Has **zero transitive dependencies** beyond the official `@xdevplatform/xdk` SDK and `@sinclair/typebox` - Includes a comprehensive test suite (200+ tests) verifiable via `npm test` Since this skill installs code from npm at runtime, **review the source or pin a specific version** (`npm i -g @xonder/clawbird@1.1.0`) before granting credentials.Technical Analysis
The installation metadata references
@xonder/clawbirdwithout an exact version or integrity constraint. Package resolution can therefore select a release published after this skill was audited. The runtime implementation is not bundled in the project, so its claimed network, filesystem, credential-handling, and dependency properti ...[truncated 2245 chars]- Remediation
View remediation
Remediation Suggestions
- Replace the unversioned package declaration with an exact, reviewed version, such as
@xonder/clawbird@1.1.0, after independently verifying that release. - Enforce package integrity using a trusted lockfile, cryptographic integrity hash, signed provenance, or registry signature mechanism where the installation platform supports it.
- Prefer bundling the reviewed runtime source with the skill so the audited artifact matches the code that will execute.
- Audit each dependency update before changing the pinned version, including package provenance, install scripts, transitive dependencies, network destinations, filesystem access, and credential handling.
- Grant only the minimum OAuth scopes required for intended operations. Use separate credentials for read-only and write functionality where possible.
- Require explicit user confirmation for tweets, replies, likes, follows, and direct messages.
- Run the plugin in a restricted sandbox with minimal filesystem access, no unnecessary environment variables, and outbound network access limited to the required official X API endpoint.
- Rotate and revoke X credentials promptly if package compromise is suspected.
- Replace the unversioned package declaration with an exact, reviewed version, such as
