Back to skill

Security audit

Reddit User Acquisition

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Reddit outreach tool, but it can post and DM from a real Reddit account and persist contact history with limited upfront risk and retention disclosure.

Install only if you are comfortable giving the skill Reddit credentials and letting it prepare approved public posts and DMs from your real account. Pin the browser automation dependency, use the least-privileged OAuth/token setup available, review every message manually, confirm subreddit and Reddit rules yourself, and define how long drafts, sent-message logs, contacted-user records, and metrics should be kept.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:22
Finding

Unpinned npm Dependency for Browser Automation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 22–26
Vulnerability Type: Unpinned third-party dependency
Risk Level: Medium

yaml
install:
  - kind: node
    package: "@playwright/mcp"
    bins: ["playwright-cli"]
    label: "Install Playwright CLI (npm)"

Technical Analysis

The skill instructs the environment to install @playwright/mcp without specifying an exact version or integrity hash. Consequently, installation may resolve to whichever release is current at that time rather than the release originally reviewed.

This creates a supply-chain trust gap: a compromised maintainer account, malicious package release, or unexpected upstream change could introduce code that was not present during the skill audit. Because the package provides browser automation used for authenticated Reddit operations, compromised dependency code could potentially interact with the browser session and access environment data available to the process.

No evidence indicates that the currently named package is malicious. The vulnerability is the mutable, unverified dependency resolution mechanism.

Attack Path

  1. An attacker compromises the upstream package publication process or publishes a malicious future release under the legitimate package name.
  2. A user installs or enables the skill after that release becomes the version selected by npm.
  3. The skill installer retrieves the mutable package version because no exact version or integrity constraint is defined.
  4. Malicious installation or runtime code executes with the privileges granted to the package manager or skill process.
  5. The compromised component may inspect accessible environment variables, interfere with browser automation, or alter authenticated Reddit actions.

Impact Assessment

Exploitation could provide code execution with the privileges of the user or service installing and running the dependency. The practical scope may in ...[truncated 449 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin @playwright/mcp to a reviewed, exact version rather than relying on mutable default resolution.
  2. Use a committed lockfile and enforce reproducible, frozen-lockfile installation where the skill platform supports it.
  3. Record and verify package integrity hashes or signatures before installation.
  4. Restrict installation to the official npm registry and disable unexpected lifecycle scripts when operationally feasible.
  5. Review package provenance, maintainers, release notes, and dependency changes before updating the pinned version.
  6. Run browser automation with least privilege, exposing only the credentials and filesystem paths required for the task.
  7. Prefer short-lived Reddit OAuth tokens over account passwords if supported by the execution architecture.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (13)

Self-Modification

High
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

Scanner excerpt · first-1000-users-spec.v2.md (reported line 484)May include surrounding context.

md
- Verify DM vs Reply guidance makes sense for each signal type

**Afternoon:**
- Write SKILL.md with complete instructions
- Create ai-showcase examples (screenshots of all 4 outputs)
- Final test: full workflow — feed spec → review community map → check signals → read replies → read DMs
- Package all files and submit

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill is explicitly designed to search Reddit, draft replies and DMs, and execute outreach from the user's Reddit account, but the top-level description does not clearly warn that this can affect the user's third-party account reputation, trigger moderation action, or lead to rate limits, warnings, or bans. Because users may invoke the skill from a short description alone, this omission increases the chance of uninformed consent for actions with platform-policy and account-standing consequences.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
## Ethical Guardrails (Hard-Coded)

- ❗ NEVER send without approval
- ❗ One DM per person (contacted_users enforced)
- ❗ Rate limits cannot be overridden
- ❗ No fake accounts

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
## Ethical Guardrails (Hard-Coded)

- ❗ NEVER send without approval
- ❗ One DM per person (contacted_users enforced)
- ❗ Rate limits cannot be overridden
- ❗ No fake accounts

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
85% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
- ❌ Banned words: authentic, leverage, seamless, robust, genuinely, sustainable, valuable
- ❌ DM openers: "I hope", "I wanted to reach out", "I noticed that"
- ❌ Multiple accounts or platform bypasses
- ❌ Skip approval ("just send them all" = still show for approval)

---

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The workflow sends original Reddit/Slack post content, author context, and drafted replies to Telegram for approval, but the spec does not clearly disclose privacy, retention, or cross-platform data handling implications. This can expose third-party user content and metadata to another service without adequate notice, controls, or minimization.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The Slack workflow allows direct messages 'with explicit approval,' but the spec does not prominently warn users that outbound DMs are part of the system behavior. Because DMs are more intrusive and higher-risk than channel replies, failing to disclose this clearly can lead to misuse, policy violations, or unwanted contact initiated through automation-assisted workflows.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The spec presents the system as having 'no automated posting,' but elsewhere describes an automatic API-driven execution step after human approval. That mismatch can mislead operators about the true level of automation and risk, reducing scrutiny around what is effectively one-click mass posting to third-party platforms.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly generates DM templates and recommends contacting individuals based on their posts, which facilitates unsolicited outreach and can lead users to violate platform rules, privacy expectations, or anti-harassment policies. Although the document includes ethical guardrails later, the core workflow still operationalizes targeted cold messaging and normalizes DMing as a conversion tactic.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill explicitly plans to use Reddit credentials to search, post public replies, and send DMs from the user's real account, but the description does not clearly warn the user about privacy exposure, account enforcement risk, or the possibility of violating subreddit or platform rules. Even with human approval and rate limits, users may underestimate the reputational and account-suspension consequences of automated outreach performed through their account.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
78% confidence
Finding

The title frames the skill as 'Reddit-Only', which implies operations limited to Reddit activity. However, the documented logic also loads, updates, and persists multiple local data/config/log files and session state, so the documentation understates the actual non-Reddit data-handling behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill automates Reddit replies and DMs, tracks contacted users, and updates persistent contact history without any explicit user-facing consent or warning about outreach behavior. This is dangerous because an operator may trigger unsolicited messaging and durable profiling of users without understanding the compliance, privacy, or platform-abuse implications.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill persists operational data, drafts, logs, contacted user records, and moderation-related status to multiple local files without any explicit disclosure or storage safeguards. This creates unnecessary privacy and security risk because sensitive outreach content and user-identifying interaction history may be retained on disk, exposed to other local users/processes, or kept longer than intended.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.