Back to skill

Security audit

Scavio Reddit API

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Reddit data lookup integration that sends requested Reddit queries and identifiers to Scavio, with no hidden persistence or destructive behavior found.

Before installing, confirm you are comfortable sending Reddit search terms, post URLs or IDs, usernames, subreddit names, and comment cursors to Scavio using your API key. Do not use the skill for confidential investigations or sensitive identifiers unless that third-party data sharing is acceptable.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (5)

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill explicitly sends user-supplied Reddit queries, post URLs/IDs, subreddit names, and usernames to a third-party service, but it does not clearly warn users that their inputs will be transmitted outside the local agent environment. This creates a privacy and data-handling risk because users may provide sensitive research topics or identifiers without informed consent.

External Transmission

Medium
Category
Data Exfiltration
Content
HEADERS = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}"}

# 1. Search Reddit
results = requests.post(f"{BASE}/api/v1/reddit/search", headers=HEADERS,
    json={"query": "serpapi alternative"}).json()

post_id = results["data"]["results"][0]["post_id"]
Confidence
91% confidence
Finding
This example performs an outbound POST request to Scavio with a user-controlled search query, transmitting potentially sensitive research terms to an external API. The behavior is expected for the skill's purpose, but it is still a real data egress path that can expose user intent, internal project names, or other sensitive context.

External Transmission

Medium
Category
Data Exfiltration
Content
post_id = results["data"]["results"][0]["post_id"]

# 2. Full post detail
post = requests.post(f"{BASE}/api/v1/reddit/post", headers=HEADERS,
    json={"post_id": post_id}).json()

# 3. Top comments, then expand one thread
Confidence
89% confidence
Finding
This request sends a Reddit post identifier or URL to a third-party API, which is another external transmission channel. While normal for a Reddit retrieval skill, it still leaks what content the user or agent is investigating and could reveal confidential investigative interests or user behavior patterns.

External Transmission

Medium
Category
Data Exfiltration
Content
json={"post_id": post_id}).json()

# 3. Top comments, then expand one thread
comments = requests.post(f"{BASE}/api/v1/reddit/post/comments", headers=HEADERS,
    json={"post_id": post_id, "sort": "TOP"}).json()

reply_cursor = comments["data"]["comments"][0]["reply_cursor"]
Confidence
89% confidence
Finding
Fetching comments transmits the target post identifier and parameters to the external provider, disclosing what discussion thread is being analyzed. In sensitive environments, this can reveal monitoring targets, research focus, or user interests to a third party.

External Transmission

Medium
Category
Data Exfiltration
Content
json={"post_id": post_id, "sort": "TOP"}).json()

reply_cursor = comments["data"]["comments"][0]["reply_cursor"]
replies = requests.post(f"{BASE}/api/v1/reddit/post/comments/replies", headers=HEADERS,
    json={"post_id": post_id, "cursor": reply_cursor}).json()

# 4. Subreddit feed
Confidence
88% confidence
Finding
Expanding replies sends both the post ID and reply cursor externally, which can expose detailed navigation through a discussion tree to the API provider. This is not inherently malicious, but it increases observability into the user's analysis workflow and should be treated as external data sharing.

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
SKILL.md:42