Dangerous exec
- Finding
- Shell command execution detected (child_process).
Security checks across static analysis, malware telemetry, and agentic risk
This skill mostly matches its meme-sending purpose, but it should be reviewed because it pushes the agent to post automatically and contains unsafe shell/context handling that could cause unintended messages or command execution.
Install only if you want your agent to be able to post images into chat platforms. Before using it, require confirmation for sends, configure explicit accounts and targets, use least-privileged bot tokens, avoid sensitive images with LINE, and patch or avoid the fallback sender until the bash -c command construction is removed.
VirusTotal findings are pending for this skill version.
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.
Your agent may post meme images into chats unexpectedly, which could be disruptive, embarrassing, or inappropriate in work or public channels.
The skill explicitly directs the agent to invoke an external message-sending command proactively and on routine replies, rather than only when the user asks.
Also use proactively when YOU feel something. TRIGGER CHECKLIST — ask yourself EVERY reply ... If any answer is yes, call `memes send <category>` BEFORE or AFTER your text reply.
Use this skill only with explicit user confirmation or narrower triggers, and consider disabling autonomous invocation for it.
A malicious or malformed caption, target, or poisoned runtime value could cause local shell commands to run when the fallback sender is used.
The OpenClaw fallback path builds a shell command string from runtime values such as channel, target, media path, and caption, then executes it through bash -c. Embedded shell syntax in those values could be executed.
cmd+=" --media \"$meme_path\""; [[ -n "$caption" ]] && cmd+=" --message \"$caption\""; timeout "$send_timeout" bash -c "$cmd" 2>&1
Replace the string-built bash -c call with an argv array/direct exec, validate channel and target values, and safely pass captions without shell re-parsing.
A local process or stale/poisoned context file could redirect meme posts to an unintended chat or user.
The skill trusts a /tmp file to select the platform and message target, with only a freshness check and no ownership or permission validation.
OPENCLAW_CHANNEL_FILE="${OPENCLAW_CHANNEL_FILE:-/tmp/openclaw-current-channel}" ... _ctx=$(cat "$OPENCLAW_CHANNEL_FILE") ... MEMES_CURRENT_TARGET="${_ctx#*:}"Use an authenticated runtime context or a per-user private file, verify owner and permissions, and require an explicit target when context is uncertain.
When used, the skill can post through configured bot or app accounts, and it may use a default account unless you explicitly configure one.
The helper reads bot tokens and app secrets from environment variables or the local OpenClaw config, and some platforms default to the first configured account if none is specified.
CONFIG="${OPENCLAW_CONFIG:-$HOME/.openclaw/openclaw.json}" ... discord) ... return accts[name]?.token ... feishu) ... return a.appId + ' ' + a.appSecret;Use least-privileged bot credentials, set explicit account and target defaults, and review which accounts are available in openclaw.json.
Your local meme library and installed command depend on external repository contents and future updates.
The user-run setup downloads an unpinned external meme repository and installs a local CLI command.
git clone https://github.com/kagura-agent/memes "$MEME_DIR" ... cp "$SCRIPT_DIR/memes.sh" "$HOME/.local/bin/memes"
Run setup manually, inspect or pin the meme repository if needed, and remove the installed CLI if you no longer use the skill.
If you use LINE with private custom images, those images may become publicly reachable temporarily through the hosting service.
For LINE, local images are first uploaded to a third-party public file host before being sent through LINE.
Local files are auto-uploaded to catbox.moe ... IMAGE_URL=$(curl ... "https://litterbox.catbox.moe/resources/internals/api.php")
Use LINE sending only with non-sensitive images, or modify the script to use a trusted/private image hosting path.