Dingtalk

Security checks across malware telemetry and agentic risk

Overview

The DingTalk integration mostly matches its stated messaging purpose, but its inbound webhook handling appears to accept messages without visible DingTalk signature/origin or allowlist enforcement.

Review this plugin before installing. It appears to be a normal DingTalk messaging channel, but only use it if your OpenClaw Gateway or the plugin verifies DingTalk callback authenticity and enforces user/group allowlists. Configure a least-privilege DingTalk app or robot, avoid broad permissions, and confirm the source/version mismatch is acceptable for your environment.

VirusTotal

64/64 vendors flagged this skill as clean.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

#
ASI07: Insecure Inter-Agent Communication
Medium
What this means

If the public callback endpoint is not protected elsewhere, someone could spoof DingTalk-style webhook messages and cause the agent to process commands as if they came from DingTalk.

Why it was flagged

The receive handler trusts the incoming payload fields and turns them into an OpenClaw inbound message without visible DingTalk signature verification, callback decryption, webhook secret validation, or allowlist checks in this code path.

Skill content
async receive(ctx: ChannelPluginContext<DingTalkConfig>, payload: unknown) { ... if (data.msgtype === "text" && data.text) { ... return { ... authorId: String(data.senderStaffId || data.staffId || "unknown"), ... } }
Recommendation

Only expose the callback if OpenClaw Gateway verifies DingTalk signatures/encryption and enforces dmPolicy/groupPolicy allowlists before messages reach the agent; otherwise add those checks to the plugin or keep the channel disabled.

#
ASI03: Identity and Privilege Abuse
Low
What this means

Installing and configuring the skill gives OpenClaw the ability to act through the configured DingTalk app, including sending messages according to that app's permissions.

Why it was flagged

The plugin uses DingTalk app credentials from config or environment variables to obtain access tokens. This is necessary for the stated integration, but it is sensitive account authority.

Skill content
const clientId = cfg.clientId?.trim() || cfg.appKey?.trim() || process.env.DINGTALK_CLIENT_ID?.trim() || process.env.DINGTALK_APP_KEY?.trim();
const clientSecret = cfg.clientSecret?.trim() || cfg.appSecret?.trim() || process.env.DINGTALK_CLIENT_SECRET?.trim() || process.env.DINGTALK_APP_SECRET?.trim();
Recommendation

Use a dedicated DingTalk app or robot with the minimum required permissions, rotate the secret if exposed, and avoid broad organization-wide permissions unless needed.

#
ASI02: Tool Misuse and Exploitation
Low
What this means

The agent can send messages to DingTalk targets configured for the channel, which may be visible to coworkers or groups.

Why it was flagged

Outbound agent messages can be posted to DingTalk via a configured webhook URL, or via the DingTalk API fallback. This is central to a channel plugin but gives the agent external posting capability.

Skill content
if (cfg.webhookUrl) { const success = await sendWebhookMessage(cfg.webhookUrl, cfg.webhookSecret, content); if (success) return; }
Recommendation

Configure only intended webhook URLs and target IDs, prefer allowlisted groups/users, and review whether autonomous message sending is acceptable for your workspace.

#
ASI04: Agentic Supply Chain Vulnerabilities
Info
What this means

It may be harder to confirm exactly which release or upstream project this plugin came from.

Why it was flagged

The package/plugin artifacts report version 0.1.0 while registry metadata reports version 1.0.0, and the registry source/homepage are listed as unknown/none. No malicious install behavior is shown, but provenance is less clear.

Skill content
"version": "0.1.0"
Recommendation

Verify the package contents and maintainer before installing, especially in production workspaces.