T09 · Insecure Skill Coding Practices
- Location
SKILL.md:153- Finding
Shell Command Injection Through Unquoted Remote Image URLs
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is purpose-aligned for social media publishing, but it gives agents unsafe command and credential-handling guidance around a high-impact posting workflow.
Review before installing. Use this only in a workspace where the configured tokens are allowed to publish for the intended brand, require a final human preview before publish or schedule actions, treat uk_* and hp_sk_* values as secrets, and avoid following the raw curl and /tmp examples without safer URL validation and unique private temp files.
SKILL.md:153Shell Command Injection Through Unquoted Remote Image URLs
references/feishu-guide.md:46Predictable Shared Temporary File Enables Symlink and Race Attacks
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
feishu-send image "oc_demo_group_id" /root/.openclaw/workspace/post3.png
rm /tmp/card.json
The file states 'Must use mcporter to call MCP server tools — do NOT use exec/curl' and repeats that direct curl access to the MCP API is forbidden. Later guidance explicitly instructs use of curl and shell-style parallel execution for downloading images, creating a contradictory operational instruction set about tool usage.
The activation criteria are broad enough to trigger on generic terms like 'hotel', 'post', or platform names, which can cause unintended invocation. Over-broad activation can lead the agent to engage this skill in contexts the user did not intend, increasing the chance of unnecessary access to connected services or accidental publishing workflows.
The workflow includes publish_post and schedule_post to external social media accounts, but the description does not prominently warn that using the skill can create real external posts. Without a clear warning and confirmation step, users may unintentionally authorize reputationally sensitive, irreversible, or publicly visible actions.
The file states that zh is the default language and instructs using en only when the user requests English, which imposes a specific language choice by default. This is a locale/language policy issue because the skill does not ask for or offer a neutral user language preference before defaulting to Chinese.
The skill instructs downloading external images and writing them to /root/.openclaw/workspace/, but does not prominently warn users about those side effects. This matters because remote downloads and privileged-path writes expand the attack surface, can expose the system to malicious file content, and may violate user expectations about local persistence.
The examples normalize direct use of publish_post and schedule_post against real social accounts without showing a clear confirmation step or warning that these actions create external side effects. In an agent setting, example flows strongly influence implementation and model behavior, so this can lead to accidental posting, scheduling, or modification of public-facing brand content if the assistant follows the pattern too eagerly.
The guide instructs agents to send cards and images to Feishu recipients but provides no warning or control guidance about recipient verification, data sensitivity, or external transmission risks. In a skill that publishes social media content through messaging infrastructure, this omission increases the chance of accidental disclosure of unpublished content, internal images, or messages sent to the wrong chat.
The onboarding guide instructs users to manually copy long-lived sensitive tokens and paste them directly into agent MCP configuration headers, but it does not clearly warn that these credentials are secrets or explain the risks of storing them in plaintext config, logs, screenshots, or shared workspaces. This increases the chance of accidental credential exposure, token reuse across contexts, and unauthorized workspace access if the config file or host environment is compromised.
The skill requires downloading remote images and writing temporary files under /root, but those capabilities are not clearly disclosed in the manifest description. Hidden filesystem and network side effects reduce user and platform visibility into what the skill can do, increasing the risk of unsafe execution and trust violations.
The manifest describes a skill centered on MCP-based social media content generation, review, and publishing. The added capability to invoke a separate Feishu notification tool introduces an IM/push-notification function outside that core purpose, and the manifest description does not mention notifications.
No suspicious patterns detected.