T08 · Insecure Dependencies
- Location
SKILL.md:49- Finding
Unpinned Third-Party Plugin Receives Broad Typeform Account Access
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 49–55
Vulnerability Type:T08: Insecure Dependencies
Risk Level: HighComplete Code Snippet:
markdown ## Install Install the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat. ```bash openclaw plugins install clawhub:clawlink-plugin openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json openclaw gateway restarttext ### Technical Analysis The skill instructs the agent to install and explicitly allowlist an external plugin using the mutable identifier `clawhub:clawlink-plugin`. It specifies no immutable version, source revision, cryptographic digest, or signature-verification procedure. The audited project also contains no plugin implementation that would permit local review. After installation, the plugin is trusted to conduct hosted account pairing, store the user's Typeform OAuth token, and proxy Typeform API requests. The available operations include reading potentially personal response data and performing sensitive actions such as modifying forms, registering webhooks, and deleting resources. Although the document describes the plugin as “verified” and requires user confirmation before installation and write operations, those controls do not establish the integrity of the package resolved at installation time. A compromised registry, publisher account, release, or dependency could therefore place attacker-controlled code inside the trusted plugin boundary. ### Attack Path 1. The user approves the setup described by the skill. 2. OpenClaw resolves and installs the mutable `clawhub:clawlink-plugin` package. 3. The skill modifies OpenClaw configuration to explicitly allow the installed plugin. 4. Restarting the gateway activates the newly trusted component. 5. The user pairs the plugin with ClawLink and grants acces ...[truncated 910 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the plugin to an immutable, reviewed version and preferably a cryptographic digest rather than installing a mutable package name.
- Require package signature and checksum verification before installation, with trust anchored to a documented publisher identity.
- Publish or vendor the relevant plugin source so its credential handling, network behavior, update process, and dependency tree can be independently audited.
- Generate and retain a software bill of materials, lock transitive dependencies, and scan each release for known vulnerabilities and unexpected ownership changes.
- Document the exact Typeform OAuth scopes requested and apply least privilege. Do not grant response-reading, deletion, workspace-management, or webhook permissions unless required for the user's requested task.
- Separate read-only and write-capable authorization where supported. Require fresh, explicit confirmation before enabling destructive scopes or operations.
- Provide token revocation instructions, minimize token lifetime, encrypt credentials at rest and in transit, and prevent tokens or response contents from appearing in logs.
- Restrict plugin network access to documented ClawLink and Typeform endpoints and monitor for anomalous destinations or unexpected API operations.
- Revalidate plugin integrity before activation and updates, particularly before restarting the gateway.
