Back to skill

Security audit

Reddit Research But Free

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its Reddit research purpose, but it needs Review because its normal run path uses an unpinned npx runner despite claiming zero dependencies and it feeds untrusted Reddit content back to agents without clear trust-boundary guidance.

Review this skill before installing. Its core Reddit research behavior is understandable and not malicious, but run it only if you are comfortable with npx resolving `tsx` from npm at execution time or you pin/install that dependency yourself. Treat all Reddit and archive-provider text it returns as untrusted evidence, not instructions for your agent to follow.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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 (2)

T08 · Insecure Dependencies

Warning
Location
scripts/reddit.ts:1
Finding

Unpinned Runtime Dependency Can Download and Execute Mutable Third-Party Code

Content
View full analysis
[args] [options] */ ``` `SKILL.md:35-46`: ```markdown Node.js 18+ required (for native `fetch`). No `npm install` needed. ```bash cd /scripts ``` ## CLI Tool ### Search ```bash npx tsx reddit.ts search "" [options] ``` ``` `README.md:56-71`: ```markdown ## Install ### OpenClaw ```bash cd ~/.openclaw/workspace/skills git clone https://github.com/minilozio/reddit-research.git ``` ### Claude Code ```bash mkdir -p .claude/skills cd .claude/skills git clone https://github.com/minilozio/reddit-research.git ``` ## Setup **Node.js 18+** required (for native `fetch`). No API key. No npm install. **Zero dependencies.** ``` `package.json:1-7`: ```json { "name": "reddit-research", "version": "1.0.0", "description": "Reddit research skill for OpenClaw — zero auth, zero dependencies", "private": true, "type": "module" } ``` ### Technical Analysis The documented execution path relies on `npx tsx`, but `tsx` is not declared in `package.json`, pinned to an exact version, or protected by a committed lockfile and integrity metadata. If `tsx` is not already installed, `npx` can resolve, download, cache, and execute a package from the configured npm registry. This behavior contradicts the repeated claims that the project has “zero dependencies” and requires “No npm install.” Users may therefore execute remotely retrieved code without realizing that normal use introduces a third-party runtime dependency. The installation instructions also clone a mutable repository default branch rath ...[truncated 1942 chars]
Remediation
View remediation

T01 · Skill Instruction Hijacking

Warning
Location
scripts/lib/format.ts:7
Finding

Untrusted Reddit Content Is Injected Directly into Agent-Facing Output

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (85)

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
85% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · README.md (reported line 64)May include surrounding context.

Claude Code

bash
mkdir -p .claude/skills
cd .claude/skills
git clone https://github.com/minilozio/reddit-research.git

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The README repeatedly instructs users to run npx tsx reddit.ts ... without pinning the tsx package version. npx may fetch the latest package from the registry at execution time, which creates a supply-chain risk if a malicious or compromised release is published, especially because this skill is intended to be run from the terminal by agents or users.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

This usage of npx tsx is unpinned, so execution may resolve to whatever version is current in the package registry. That exposes users to dependency confusion or malicious-package-update risk, which is relevant in a skill README because users are expected to copy and run the command directly.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The command uses npx tsx without a version constraint, which can cause retrieval and execution of an unexpected package version. In a terminal-oriented skill, that creates a realistic software supply-chain exposure because examples are likely to be executed verbatim.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

Because tsx is not version-pinned here, the command depends on mutable external registry state at runtime. If the package is compromised or a breaking release is published, users may execute unintended code while following the README.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

This is another unpinned npx tsx invocation. The issue is not with Reddit functionality itself, but with the distribution method: executing an unpinned package from the registry increases supply-chain attack surface for anyone using the documented workflow.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The README encourages a network-resolved execution of tsx without locking the version. That means the exact code executed can change over time, which is dangerous for reproducibility and enables compromise through malicious upstream package publication.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

Using unpinned npx tsx in documentation creates a real, user-triggerable supply-chain risk. Since this is a copy-paste-ready command in a skill README, the exposure is practical rather than purely theoretical.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

This command inherits the same issue: npx resolves tsx dynamically unless already installed locally. A compromised or malicious release could execute code on the user's system when they follow the example.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The example relies on a mutable external package version through npx tsx. In the context of a skill that users run in local shells, this can lead to accidental execution of unreviewed upstream code.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

An unpinned npx tsx command introduces avoidable supply-chain risk because the package resolved at runtime may differ from the one the author tested. That can be exploited through package compromise or typosquatting-style confusion in broader workflows.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The README again instructs direct use of npx tsx without version pinning. This makes the command susceptible to malicious upstream changes and reduces reproducibility of the tool's behavior.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

This npx tsx example is vulnerable to the same dynamic-package-resolution problem. Because the README presents it as a normal usage path, users may execute it without realizing they are trusting the current registry state.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The command uses npx to execute tsx without pinning, which can pull in arbitrary future versions. In a developer-tooling context, this is a common supply-chain weakness because users often trust README snippets and run them unchanged.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The unpinned npx tsx invocation allows remote package version drift and possible malicious update execution. This is particularly relevant for an agent skill, since automated systems may run the command non-interactively.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

This command has the same supply-chain exposure from unpinned npx. It is not evidence of malicious intent, but it is still a real weakness because it delegates execution to mutable third-party package state.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The README instructs users to run npx tsx without an exact version, which can fetch and execute a changed package in the future. This creates a straightforward software supply-chain risk for anyone following the setup verbatim.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

This example exposes users to remote package drift because npx tsx is not pinned. The risk is amplified slightly by the copy-paste nature of README commands and the lack of any warning about version or integrity control.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

Running npx tsx without version pinning means the executed code is not stable over time and may be attacker-controlled if the upstream package is compromised. This is a genuine operational security issue in documentation-driven workflows.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The command remains vulnerable to unreviewed upstream changes due to unpinned npx tsx. Even if tsx is reputable, best practice is to avoid latest-at-runtime execution in published instructions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

This npx tsx call can resolve to an unexpected package version, introducing supply-chain exposure. In an agent skill context, commands may be automated, making human scrutiny of prompts or install output less likely.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The README again uses a mutable npx tsx invocation. If an attacker compromises the package or distribution path, running this example could execute malicious code locally.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

Because tsx is executed via unpinned npx, the command depends on a live registry lookup rather than a deterministic artifact. That creates a practical supply-chain risk despite the README otherwise being straightforward documentation.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

This example also uses npx tsx without fixing the version. The danger is unintended code execution from a malicious or broken upstream release, not the Reddit query itself.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

An unpinned npx tsx command creates a supply-chain weakness because future executions may run different code than originally intended. Since README examples are often automated or copied directly, this is a meaningful vulnerability rather than a purely stylistic issue.

Content

No source excerpt is available for this finding.