Back to skill

Security audit

Reddit Publisher

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly coherent, but it can publish public Reddit posts through a connected account without a built-in confirmation or dry-run safeguard.

Install only if you are comfortable giving the agent Reddit posting authority through your Late account. Use environment variables or a secret manager where possible, restrict the connected Reddit account, and require the agent to show the final title/body/subreddit and get your explicit approval before running create-post, especially with --publish-now.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (12)

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

A second description-behavior mismatch indicates the skill may expose undocumented capabilities while omitting claimed safeguards and core functions. In a posting skill, undocumented ad-library retrieval and missing posting-validation steps weaken user trust and can conceal data access patterns or operational risks from reviewers.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

A second description-behavior mismatch indicates the skill may expose undocumented capabilities while omitting claimed safeguards and core functions. In a posting skill, undocumented ad-library retrieval and missing posting-validation steps weaken user trust and can conceal data access patterns or operational risks from reviewers.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill requests sensitive capabilities implicitly through environment variables, local file reads, and network access, but does not declare an explicit tool scope or permission boundary. That makes it harder for users and enforcement systems to understand what the skill can access, increasing the risk of over-broad execution and secret exposure in a skill that handles API keys and performs external posting.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
80% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 29)May include surrounding context.

md
### ScrapeCreators (reading Reddit)
1. Get an API key at [scrapecreators.com](https://scrapecreators.com)
2. Save it: `mkdir -p ~/.config/scrapecreators && echo "YOUR_KEY" > ~/.config/scrapecreators/api_key && chmod 600 ~/.config/scrapecreators/api_key`

### Late (posting to Reddit)
1. Get an API key at [getlate.dev](https://getlate.dev)

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
80% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 34)May include surrounding context.

md
### ScrapeCreators (reading Reddit)
1. Get an API key at [scrapecreators.com](https://scrapecreators.com)
2. Save it: `mkdir -p ~/.config/scrapecreators && echo "YOUR_KEY" > ~/.config/scrapecreators/api_key && chmod 600 ~/.config/scrapecreators/api_key`

### Late (posting to Reddit)
1. Get an API key at [getlate.dev](https://getlate.dev)

Session Persistence

Medium
Category
Rogue Agent
Confidence
80% confidence
Finding

The skill instructs users to persist API keys in ~/.config, creating durable credentials on disk for services that can read Reddit data and publish posts. Persistent secrets increase the blast radius of later compromise by other local processes, future skills, or accidental file exposure, especially because this skill also relies on file-read capability and external network actions.

Content

Scanner excerpt · SKILL.md (reported line 29)May include surrounding context.

md
### ScrapeCreators (reading Reddit)
1. Get an API key at [scrapecreators.com](https://scrapecreators.com)
2. Save it: `mkdir -p ~/.config/scrapecreators && echo "YOUR_KEY" > ~/.config/scrapecreators/api_key && chmod 600 ~/.config/scrapecreators/api_key`

### Late (posting to Reddit)
1. Get an API key at [getlate.dev](https://getlate.dev)

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · scripts/late_reddit.py (reported line 10)May include surrounding context.

python
Base URL: https://getlate.dev/api

This is focused on Reddit workflows: list accounts, validate subreddit, list subreddits/flairs, search/feed, and create posts.
"""

from __future__ import annotations

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The create-post command performs a state-changing API call that can immediately publish Reddit content when --publish-now is supplied, but there is no confirmation prompt, dry-run mode, or explicit safety interlock before sending the POST request. In an agent skill context, this increases the risk of accidental or unauthorized posting if the tool is invoked with mistaken parameters, prompt-injected content, or user intent that was not properly confirmed.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/sc_reddit.py (reported line 21)May include surrounding context.

python
import urllib.request
from pathlib import Path

BASE_URL = "https://api.scrapecreators.com/v1"


def load_api_key() -> str:

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · scripts/sc_reddit.py (reported line 34)May include surrounding context.

python
return p.read_text(encoding="utf-8").strip()

    raise SystemExit(
        "Missing ScrapeCreators API key. Set SCRAPECREATORS_API_KEY or create ~/.config/scrapecreators/api_key"
    )

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest describes ScrapeCreators reading capabilities as limited to search, subreddit details, and comments, plus Late-based writing for posts. This file additionally exposes ad-library search and ad lookup commands, which are distinct research capabilities not mentioned in the manifest description.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

Searching Reddit's ad library and retrieving individual ads can support competitive intelligence, but that capability is not an obvious requirement of the manifest's stated purpose focused on subreddit research, comments, and post publishing. Because the manifest does not declare ad-analysis as part of the workflow, this is an unjustified extra capability relative to the stated intent.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.