aiinsight-daily-new

WarnAudited by ClawScan on May 10, 2026.

Overview

The skill matches its RSS-to-webhook purpose, but its script can expose webhook tokens in logs and unsafely embeds user-controlled values into Python code.

Review or fix the script before installing. Use only numeric count values and trusted RSS URLs, avoid printing webhook URLs, rotate any exposed webhook tokens, and install required Python dependencies only from trusted sources.

Findings (4)

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

A maliciously crafted count or RSS URL value could run unintended Python code with the user's local permissions when the script is invoked.

Why it was flagged

The unquoted heredoc expands shell variables directly into Python source. COUNT comes from the command argument and RSS_URL can come from the environment, so crafted quotes or newlines could alter the Python program rather than just act as data.

Skill content
python3 << EOF ... url = "$RSS_URL" ... count = int("$COUNT")
Recommendation

Use a quoted heredoc or pass values as command-line arguments/environment variables read inside Python, validate COUNT as a numeric value, and validate or restrict the RSS URL.

What this means

Someone who can read the agent output or logs may learn enough of a webhook URL/token to post to the user's notification or team channel.

Why it was flagged

Webhook URLs commonly embed access tokens or robot keys. Printing the first 60 characters can expose those secrets in terminal output, agent transcripts, or logs.

Skill content
webhooks = os.environ.get('AI_DAILY_WEBHOOKS', '') ... print(f"✅ 推送成功: {wh[:60]}...") ... print(f"❌ 推送失败: {wh[:60]}...\\n   Error: {e}")
Recommendation

Do not print webhook URLs; log only the provider/host or a masked value, and rotate any webhook token that may already have been exposed.

What this means

Configured webhook destinations will receive the generated daily summary, and any misconfigured or untrusted URL will receive it too.

Why it was flagged

The skill sends the generated RSS summary to every URL listed in AI_DAILY_WEBHOOKS. This is disclosed and purpose-aligned, but it is still an external webhook data flow.

Skill content
for wh in webhooks.split(): ... req = urllib.request.Request(wh, data.encode('utf-8'), headers)
Recommendation

Configure only trusted webhook URLs and review the list before using multi-channel push.

What this means

The skill may fail until the user installs missing dependencies, which can lead to ad-hoc package installation from an unreviewed source.

Why it was flagged

The script depends on python3 and the feedparser package, while the provided requirements declare no required binaries or install steps. This is likely an incomplete dependency declaration rather than hidden behavior.

Skill content
python3 << EOF
import feedparser
Recommendation

Declare python3 and the required Python package explicitly, preferably with pinned versions and trusted installation instructions.