T08 · Insecure Dependencies
- Location
SKILL.md:47- Finding
Unpinned Third-Party Plugin Is Installed and Enabled Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 47–49
Vulnerability Type: Supply-chain risk from an unpinned external plugin
Risk Level: MediumVulnerable code:
bash openclaw plugins install clawhub:clawlink-plugin openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json openclaw gateway restartTechnical Analysis
The skill directs the user or agent to install
clawlink-pluginfrom an external package registry using a mutable package identifier. It does not pin a reviewed version, require a cryptographic digest, verify a signature, or provide an integrity-validation step. It then explicitly adds the plugin to the tool allowlist and restarts the OpenClaw gateway, activating the downloaded component.Consequently, the code reviewed in this project does not fully determine the behavior executed at runtime. If the registry entry, publisher account, distribution infrastructure, or dependency chain were compromised, an attacker could replace a later plugin release with malicious code while retaining the same installation command.
The surrounding documentation indicates that this plugin participates in account pairing, OAuth credential handling, and proxying requests to Postiz. These responsibilities increase the sensitivity of the dependency. The audited file does not itself establish that the current plugin is malicious; the confirmed issue is the absence of version and integrity controls before installing and enabling privileged third-party code.
Attack Path
- An attacker compromises the
clawlink-pluginpublisher account, package registry entry, delivery infrastructure, or one of the plugin's transitive dependencies. - The attacker publishes a malicious release under the same mutable package name.
- A user follows the skill instructions and runs
openclaw plugins install clawhub:clawlink-plugin. - OpenClaw retrieves the attacker-controlled release because no tr ...[truncated 1274 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin the plugin to a specific, reviewed version rather than installing a mutable latest release.
- Require verification against a trusted cryptographic digest or publisher signature before enabling the plugin.
- Document the expected publisher identity, release version, checksum, and verification procedure directly in the installation instructions.
- Separate installation from activation. Display the resolved version and integrity information, then obtain explicit user approval before modifying
tools.alsoAllowor restarting the gateway. - Review the plugin and its transitive dependencies, and use lockfiles or an equivalent dependency-locking mechanism.
- Run the gateway and plugin with least privilege. Restrict filesystem, network, process-execution, and credential access to what the Postiz integration strictly requires.
- Ensure OAuth tokens are stored in a protected credential service and are not exposed directly to plugin code unless necessary. Use narrowly scoped, revocable tokens.
- Establish dependency monitoring and an incident-response procedure covering plugin revocation, removal, token rotation, and review of affected social-media activity.
- Prefer a trusted internal mirror or verified package repository with immutable artifacts and provenance attestations.
