Podcast to Substack

PassAudited by VirusTotal on May 12, 2026.

Overview

Type: OpenClaw Skill Name: podcast-to-substack Version: 1.0.0 The skill bundle is suspicious primarily due to potential shell injection vulnerabilities in `SKILL.md`. The markdown instructs the AI agent to execute `python3` scripts with user-provided inputs (`$RSS_URL`, `EPISODE_NUMBER`) directly within bash commands. If the AI agent does not properly sanitize these inputs before execution, an attacker could inject arbitrary shell commands. While the Python scripts themselves do not show explicit malicious intent, this execution pattern represents a significant vulnerability. Additionally, `scripts/fetch_notion_episode.py` downloads images from external URLs and saves them to a local directory, which, while defaulting to a safe path, could pose a path traversal risk if the `--download-dir` argument were user-controlled.

Findings (0)

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.

What this means

The agent could publish or queue content on your public accounts before you have reviewed the final text, links, images, and audience settings.

Why it was flagged

The skill directs the agent to take public publishing or queuing actions, but the workflow does not clearly require a final user approval step before publishing to Substack or posting/queuing on LinkedIn.

Skill content
4. Publish with stable embed behavior using the playbook in `references/substack-embed-playbook.md`. ... 6. Post or queue the LinkedIn copy.
Recommendation

Make draft creation the default and require explicit user confirmation before publishing, enabling email distribution, or posting/queuing on LinkedIn.

What this means

Running the RSS step may download and execute third-party package code that the user did not explicitly review or approve.

Why it was flagged

The RSS helper silently installs an unpinned PyPI dependency at runtime even though the skill has no install spec or declared dependency list.

Skill content
except ImportError:
    import subprocess
    subprocess.check_call([sys.executable, "-m", "pip", "install", "feedparser", "-q"])
Recommendation

Declare dependencies in an install spec or requirements file, pin package versions, and avoid runtime pip installs unless the user explicitly approves them.

What this means

The agent can read the Notion content available to the token and can act with whatever Substack publishing access the user provides.

Why it was flagged

The requested credentials are expected for this workflow, but they grant access to private Notion episode content and publishing authority on Substack.

Skill content
- Notion API key (`NOTION_API_KEY` or `~/.config/notion/api_key`)
- Substack publish access
Recommendation

Use a least-privileged Notion integration limited to the episode database and provide Substack access only in a session where you can review drafts before publication.