Slack Automator

Security checks across static analysis, malware telemetry, and agentic risk

Overview

This Slack automation skill is mostly purpose-aligned, but its script appears to build Python code from message text in a way that could let crafted input run local code.

Review carefully before installing. The Slack webhook and local history behavior are expected for this type of tool, but the visible script should be fixed to avoid interpolating message text into Python code. Until then, avoid using it with untrusted or copied message content.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

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.

#
ASI05: Unexpected Code Execution
High
What this means

A malicious or copied message could run code on the user's machine under the agent's privileges before or while sending to Slack.

Why it was flagged

The script constructs Python source by directly inserting message and channel values into triple-quoted Python strings. A crafted value containing triple quotes could break out of the string and execute arbitrary Python when the tool builds a Slack payload.

Skill content
python3 <<PYEOF ... payload["text"] = """$text""" ... channel = """$channel"""
Recommendation

Do not pass untrusted text through this script as-is. The publisher should pass values to Python via argv, stdin, or environment variables and serialize with json.dumps instead of interpolating user input into Python source.

#
ASI03: Identity and Privilege Abuse
Low
What this means

Anyone who obtains the stored webhook URL may be able to post messages to the associated Slack workspace/channel.

Why it was flagged

A Slack webhook URL is a credential that grants posting ability to the configured Slack destination. This is expected for the skill's purpose and is disclosed, but users should protect it.

Skill content
Slack Incoming Webhook URL ... Save a Slack Incoming Webhook URL to local configuration. The URL is stored in `~/.slack-automator/config.json`.
Recommendation

Use a narrowly scoped Slack webhook, protect the local config file, avoid sharing logs or config contents, and rotate the webhook if it may have been exposed.

#
ASI06: Memory and Context Poisoning
Low
What this means

Sensitive message content sent through the tool may remain on disk in the user's home directory.

Why it was flagged

The script persists sent message text, channel, action, status, and timestamp in a local history file. That is aligned with the advertised send history feature, but Slack messages can contain sensitive business content.

Skill content
HISTORY_FILE="$DATA_DIR/history.json" ... "message": """$message""", ... "channel": """$channel""" ... history.append(entry)
Recommendation

Avoid sending secrets through this tool, review or delete ~/.slack-automator/history.json when needed, and consider adding retention controls.

#
ASI10: Rogue Agents
Info
What this means

If the user wires this into cron, messages may be posted later without another interactive review.

Why it was flagged

The skill supports persistent scheduled messages, but the artifacts disclose that it only saves schedules and requires the user to set up cron for actual background execution.

Skill content
Schedules are saved locally. To actually trigger them, set up a cron job that runs `slack-automator send` with the scheduled messages.
Recommendation

Review scheduled messages before enabling cron and remove old schedules that should no longer run.