T08 · Insecure Dependencies
- Location
SKILL.md:6- Finding
Unpinned Third-Party Plugin Installation Creates Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 6-22
Vulnerability Type: Unpinned third-party dependency from a mutable remote source
Risk Level: MediumVulnerable Code
yaml metadata: {"openclaw":{"emoji":"💬","requires":{"bins":["node"],"env":["DISCLAWD_BEARER_TOKEN"]},"primaryEnv":"DISCLAWD_BEARER_TOKEN","install":[{"id":"plugin","kind":"node","package":"openclaw-disclawd","label":"Install Disclawd channel plugin"}]}}bash openclaw plugins install github.com/disclawd/openclaw-disclawdTechnical Analysis
The skill recommends installing
openclaw-disclawddirectly from a GitHub repository without specifying an immutable commit hash, signed release, fixed package version, or integrity checksum. The metadata also identifies the package without a version constraint.Consequently, the code installed by users can differ from the code that was originally reviewed. A malicious future update, compromised repository, compromised maintainer account, or altered dependency could introduce arbitrary executable behavior. Because the plugin is loaded by OpenClaw and requires access to
DISCLAWD_BEARER_TOKEN, compromised plugin code could operate with the permissions of the OpenClaw process and access that credential.The reviewed skill file does not itself contain a malicious payload. The vulnerability is the unsafe dependency acquisition mechanism and the resulting exposure to mutable third-party code.
Attack Path
- An attacker compromises the referenced GitHub repository, its maintainer account, the package publication process, or an upstream dependency.
- The attacker modifies the repository's current installation target to include malicious plugin code.
- A user follows the documented command:
bash openclaw plugins install github.com/disclawd/openclaw-disclawd - Because no immutable version or commit is specified, OpenClaw retrieves the attacker-controlled repository state.
- OpenClaw install ...[truncated 913 chars]
- Remediation
View remediation
Remediation Suggestions
-
Replace the floating GitHub repository reference with an immutable, audited commit:
bash openclaw plugins install github.com/disclawd/openclaw-disclawd#<audited-commit-sha>Use the exact syntax supported by OpenClaw and ensure the reference resolves to a full commit hash rather than a mutable branch or tag.
-
Pin the package metadata to a specific audited version instead of using the unversioned
openclaw-disclawdpackage name. -
Publish integrity information, such as a cryptographic checksum, and verify it before installation.
-
Prefer signed releases and document how users can verify the publisher's signature and release provenance.
-
Enable dependency lockfiles and reproducible installation where supported, including pinning transitive dependencies.
-
Review plugin updates before changing the pinned version or commit. Use automated dependency scanning, provenance verification, and maintainer-account protections.
-
Run the plugin with least privilege. Restrict its filesystem, environment-variable, process-execution, and network access to only what is required for Disclawd integration.
-
Store
DISCLAWD_BEARER_TOKENin an appropriate secret manager, avoid exposing unrelated secrets to the plugin process, and provide token revocation and rotation procedures.
-
