T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:21
- Finding
- Unpinned Third-Party Plugin Installation Creates a Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md`, lines 21-34 **Vulnerability Type**: Unpinned third-party dependency installation **Risk Level**: Medium **Vulnerable Code Snippet**: ```markdown ## Recommended: Install the Plugin **For the best experience, install the OpenClaw plugin for X (Twitter) API instead of this skill.** The plugin provides native MCP tools, automatic authentication, and structured parameter validation. Skill (this document): ```bash clawhub install agntdata-x ``` Plugin (native tools; npm package matches `package.json`): ```bash openclaw plugins install @agntdata/openclaw-x ``` ``` ### Technical Analysis The skill recommends installing the external npm package `@agntdata/openclaw-x` without specifying an immutable version or integrity digest. The package source is not included in the audited artifact, so its installation hooks, implementation, transitive dependencies, and runtime behavior cannot be verified from this project. An unversioned installation normally resolves to the registry's current release. Consequently, the effective code installed by this instruction can change after the skill has been reviewed. If the publisher account, package registry, release process, or a transitive dependency is compromised, a future release could introduce malicious code. This finding does not establish that the current external package is malicious. It identifies an unsafe dependency-installation instruction that lacks version and integrity controls. ### Attack Path 1. An attacker compromises the npm publisher account, release pipeline, package, or one of its dependencies. 2. The attacker publishes a modified release under the legitimate `@agntdata/openclaw-x` package name. 3. A user follows the documented unpinned installation command. 4. The installer resolves and downloads the attacker-controlled current release. 5. Any supported installation lifecycle logic executes during ...[truncated 847 chars]
- Remediation
- ## Remediation Suggestions - Pin the plugin to a specifically reviewed version rather than resolving a mutable latest release. - Where supported, require and verify a cryptographic integrity digest or signed package provenance. - Audit the plugin source, installation scripts, bundled artifacts, and transitive dependency lockfile before recommending installation. - Disable npm lifecycle scripts during installation when they are unnecessary and the installation mechanism supports doing so. - Publish the expected package registry and reject alternate or untrusted package sources. - Run third-party plugins with least privilege, restricting filesystem access, environment-variable access, network destinations, and available OpenClaw tools. - Establish an update-review process so upgrades are not automatically trusted merely because the package name remains unchanged.
