Back to skill

Security audit

Multi Robot Skill

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent multi-robot control package, but it can send live HTTP commands to physical robots without enough safety, authorization, endpoint, or failure-handling guardrails.

Review carefully before installing on any machine that can reach real robots or internal services. Use it only in a controlled test network or simulator unless you add endpoint allowlists, authenticated robot APIs, human confirmation for hazardous actions, per-robot locking, failure-stop behavior for dependent tasks, and working timeout/retry enforcement.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (4)

T09 · Insecure Skill Coding Practices

Error
Location
core/coordinator.py:153
Finding

Concurrent Commands Can Be Sent to the Same Physical Robot

Content
View full analysis
ExecutionResult: """Execute a parallel task.""" subtask_results = self._execute_batch(task.subtasks) ``` ### Technical Analysis `Coordinator._execute_batch()` submits every task in a batch to a shared `ThreadPoolExecutor`. It does not group tasks by robot or acquire a lock associated with `task.robot`. Consequently, two tasks assigned to the same robot can invoke the same adapter's `execute_action()` method concurrently. The adapters only update a shared `busy` flag; they do not use that flag as an atomic exclusion mechanism. The shared `requests.Session` objects are also used concurrently without adapter-level synchronization. This contradicts the documented claim that tasks for the same robot are automatically serialized. ### Attack Path 1. An operator, Agent, or untrusted plan source creates two atomic tasks that reference the same registered robot. 2. The tasks are placed in the same dependency batch or inside a parallel task group. 3. `_execute_batch()` submits both tasks to separate worker threads. 4. Both workers reach the robot adapter's `execute_action()` method concurrently. 5. Conflicting commands, such as movement and release commands, are transmitted to the same physical robot without coordination. No operating-system privilege escalation is required. Exploitation requires the ability to submit or influence task plans for a registered robot. ### Impact Assessment The flaw can produce conflicting physica ...[truncated 457 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
core/coordinator.py:125
Finding

Dependent Physical Actions Execute After Prerequisite Failure

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
core/coordinator.py:228
Finding

Declared Task Timeouts and Error-Handling Policies Are Not Enforced

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
skill.py:91
Finding

Unvalidated Robot Endpoints Enable Server-Side Request Forgery

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (47)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README promotes controlling robots through messaging platforms such as WeChat or WhatsApp without warning about the risks of remote command injection, account compromise, misdelivery, or unauthorized physical actuation. In a multi-robot coordination skill, remote natural-language control materially increases the chance of unsafe movement, property damage, or injury if commands are spoofed, misunderstood, or issued without strong authorization.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

该代码的核心职责是错误与异常处理,而不是机器人控制或协同调度。它只依赖任务对象与动作执行结果,执行日志记录、错误回调、重试延迟、错误历史管理等通用控制流逻辑。代码中没有出现机器人类型适配、HTTP 请求、设备控制接口、并发调度、感知数据处理或多机器人协调相关实现。因此,声明描述与该代码片段的实际行为存在明显不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

声明描述的是一个可实际协同控制多种机器人的完整 Skill,重点在于运行时控制、反馈感知、动态调整和通过 HTTP API 与机器人交互。但提供的代码块只是 task_planner.py,功能集中在任务建模与规划:创建任务、表示顺序/并行关系、做拓扑式执行顺序计算、验证依赖正确性。它没有网络访问代码、没有 HTTP 客户端、没有机器人状态感知、没有控制回路、没有动态重规划逻辑,也没有任何触发器或执行器实现。因此,代码实际行为比声明显著更窄,且核心能力不匹配。

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The document promotes direct robot control and automatic adapter generation for arbitrary HTTP-controlled robots without an explicit safety warning, authorization requirement, or operational guardrails. In this context, an agent may translate user-supplied API docs into real-world robot actions, so omission of safety constraints increases the chance of unsafe or unauthorized physical operations.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The instructions tell users to paste robot API documentation directly into chat without warning that such documentation may expose internal endpoints, credentials, network topology, or sensitive operational details to the agent platform. Because the skill is designed to ingest arbitrary robot API docs and act on them, this creates a meaningful risk of unintended disclosure and downstream misuse.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

The example adapter performs outbound HTTP POST requests to a configurable endpoint and dynamically appends the action to the URL path, enabling transmission of commands and parameters to arbitrary robot APIs. In the skill's context of auto-generated adapters and direct robot control, insufficient validation of endpoint, action names, authentication, and transport security could enable unauthorized command execution, SSRF-like access to internal services, or unsafe physical actions.

Content

Scanner excerpt · OPENCLAW_INTEGRATION.md (reported line 117)May include surrounding context.

md
def execute_action(self, action, params=None):
        params = params or {}
        try:
            resp = requests.post(f"{self.endpoint}/api/{action}", json=params, timeout=30)
            data = resp.json()
            if data.get("success"):
                return ActionResult(ActionStatus.SUCCESS, "完成", data=data)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This section documents concrete robot-control capabilities such as grabbing, moving, and releasing objects, but it does not include any safety caveats about physical hazards, workspace isolation, emergency stop procedures, or operator supervision. In a multi-robot control skill, omission of such warnings can lead users to apply examples directly to real hardware in unsafe environments, increasing risk of collisions, dropped loads, or unintended motion.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The examples show immediate execution of plans against live HTTP robot endpoints, including localhost and LAN addresses, without any warning about authentication, authorization, endpoint trust, simulation-first testing, or physical safety review. Because this is operational code for networked robots, users may copy-paste it into production-like environments and trigger unsafe physical actions or unauthorized device control.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README explicitly encourages an AI agent to automatically clone a repository, install dependencies, read additional instruction files, and generate robot adapters from user-supplied API documentation. That creates a supply-chain and prompt-injection pathway with direct access to code execution and physical robot control, especially because no verification, sandboxing, approval gates, or safety constraints are described.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding

The skill explicitly instructs the agent to connect to robot HTTP endpoints and includes sample code using the requests library, but it declares no tool/permission scope. That creates an authorization and transparency gap: an agent may initiate network connections to internal or user-supplied devices without an explicit policy boundary, increasing SSRF-like and unintended device-interaction risk.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The natural-language instructions are written as direct behavioral guidance to the agent in Chinese and do not indicate that the agent should adapt to the user's preferred language. Under SQP-3, forcing a specific language without user opt-in is a policy violation unless the locale constraint is explicitly documented and justified, which is not present here.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

The skill includes code that sends arbitrary JSON parameters to a user-supplied endpoint via requests.post. In context, network transmission is expected for robot control, but without scoping, endpoint validation, or confirmation, it can be abused to send commands to unintended internal services or unsafe robot APIs; in this skill's physical-device context, that makes the transmission more dangerous than ordinary outbound HTTP.

Content

Scanner excerpt · SKILL.md (reported line 158)May include surrounding context.

md
params = params or {}
        try:
            if action == "action_name":
                resp = requests.post(
                    f"{self.endpoint}/api/action",
                    json=params,
                    timeout=self.timeout

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill describes executing real-world robot actions such as grab, release, load, unload, and movement without requiring any safety warning, operator acknowledgment, or confirmation gate. In a physical-control context, issuing such commands can cause property damage, injury, or unsafe robot state transitions if triggered accidentally, by misunderstanding, or through prompt manipulation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

SQP-3 applies to all file types and flags language or locale policy violations. This markdown file presents all instructions and update information only in Chinese, with no indication that the user can choose another language and no justification that the skill is region-specific.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The quick-start section encourages registering live HTTP endpoints and immediately executing plans, which can send real commands to physical robots on local networks without any warning or confirmation step. Because the examples look copy-pastable and target plausible device addresses, a user may unintentionally actuate robots in a real environment, creating safety and operational risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The guide documents actions that can cause immediate real-world effects such as movement, grasping, loading, unloading, and releasing, but it does not warn operators to verify workspace safety, establish an emergency stop, or confirm the target environment before execution. In a multi-robot coordination context, omissions like this increase the chance of collisions, dropped objects, property damage, or injury from unsafe task plans being executed as written.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The report describes a skill that enables natural-language control of physical robots and highlights messaging-channel integration, but it provides no safety warning about real-world actuation risks, supervision requirements, or the need for operational safeguards. In this context, omission is dangerous because users may treat the skill as routine software automation rather than a safety-critical control surface capable of causing physical injury, equipment damage, or unsafe autonomous behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The architecture section explicitly mentions WeChat/WhatsApp/钉钉 integration and HTTP API robot control, yet the documentation omits privacy, authentication, and network exposure warnings. This increases the risk that deployers expose robot control endpoints or relay sensitive operational data through chat platforms without understanding the security implications, enabling unauthorized command injection, interception, or leakage of telemetry and environment information.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This code file contains user-facing natural-language descriptions and messages exclusively in Chinese, including the module docstring and class/action documentation. Under the language/locale policy, forcing a specific language without offering a choice or documenting a justified locale constraint is a policy violation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This adapter directly exposes safety-critical physical operations such as move, grab, release, and release-to-dog over HTTP without any built-in confirmation, interlock, authorization check, or operator acknowledgment at the adapter layer. In a multi-robot control skill, mistaken, spoofed, or autonomous invocation can cause unintended robot motion, dropped objects, collisions, or human safety incidents, making the risk materially higher than ordinary API wrappers.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The human-readable comments and descriptions in the configuration are written in Chinese throughout, including labels such as the file description and robot descriptions. For a general-purpose skill file, this imposes a specific language context without any visible opt-in, alternative locale, or documentation that the skill is region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

This Python file contains user-facing natural-language documentation entirely in Chinese, including the module and class descriptions, with no indication that language is selectable or that the skill is region-specific. Under the policy for natural-language constraints, forcing a specific language without opt-in is a locale-policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This file contains natural-language documentation and operational messages entirely in Chinese, and there is no indication that users can opt into that locale or that the skill is intentionally region-specific. Under the language/locale policy, forcing a specific language without user choice is a policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This code file contains user-facing natural-language documentation exclusively in Chinese, including the module docstring and later docstrings/comments, with no indication that the skill is region-specific or that another language is available. Under the policy, forcing a specific language without user opt-in is a natural-language locale violation.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.