Back to skill

Security audit

Scrapping

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward guide for using a third-party public social-media scraping API, with privacy and retention caveats but no hidden or destructive behavior found.

Before installing, understand that searches, profile handles, post URLs, content IDs, filters, and similar lookup terms will be sent to ScrapeCreators using your API key. Use it for public, non-sensitive research, limit pagination and comment/transcript collection to what you actually need, and be deliberate about saving JSON or CSV outputs because those files may retain scraped personal or business data locally.

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
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (17)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill routes user-supplied handles, search terms, URLs, and similar parameters to a third-party scraping API, but it does not clearly warn that these inputs are being transmitted off-platform. This creates a privacy and consent risk, especially if users provide sensitive targets, investigative queries, or proprietary search terms assuming processing is local.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This example sends a requested social-media handle to an external third-party service using the configured API key. In this skill context, external transmission is expected, but it remains security-relevant because user inputs and lookups leave the local trust boundary and may expose sensitive investigative intent or personal data.

Content

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

Your first request

bash
curl -s -G "https://api.scrapecreators.com/v1/tiktok/profile" \
  --data-urlencode "handle=khaby.lame" \
  -H "x-api-key: $SCRAPECREATORS_API_KEY" | jq .

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This request transmits a target handle to an external scraping service to obtain platform data. Although core to the skill’s purpose, the transmission still poses privacy and operational risks because it reveals the subject of the lookup and depends on a non-local service.

Content

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

bash
# First page
curl -s -G "https://api.scrapecreators.com/v3/tiktok/profile/videos" \
  --data-urlencode "handle=khaby.lame" \
  -H "x-api-key: $SCRAPECREATORS_API_KEY" | jq .

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

The pagination example continues sending lookup context and cursors to the external provider, potentially broadening the amount of retrieved and exposed data. Repeated paginated calls can amplify privacy impact and data over-collection if the agent keeps fetching beyond the user’s actual need.

Content

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

md
-H "x-api-key: $SCRAPECREATORS_API_KEY" | jq .

# Next page (using max_cursor from previous response)
curl -s -G "https://api.scrapecreators.com/v3/tiktok/profile/videos" \
  --data-urlencode "handle=khaby.lame" \
  --data-urlencode "max_cursor=CURSOR_VALUE" \
  -H "x-api-key: $SCRAPECREATORS_API_KEY" | jq .

External Transmission

Medium
Category
Data Exfiltration
Confidence
93% confidence
Finding

The generic request pattern explicitly encourages sending user-provided parameters such as handles, search queries, and URLs to a third-party API. While it properly recommends safe URL encoding, it does not address the separate risk that these potentially sensitive inputs are transmitted externally.

Content

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

Every call follows the same shape. Always use -G with --data-urlencode to safely pass query parameters — this prevents shell injection from user-provided values (handles, search queries, URLs) and properly encodes special characters:

bash
curl -s -G "https://api.scrapecreators.com/v1/{platform}/{endpoint}" \
  --data-urlencode "param=value" \
  -H "x-api-key: $SCRAPECREATORS_API_KEY"

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

This chaining example starts by sending a profile lookup to the external API, establishing a pattern of multi-step third-party enrichment. Multi-step workflows increase the volume of externalized user intent and can compound exposure when the subject matter is sensitive.

Content

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

bash
# 1. Get profile
PROFILE=$(curl -s -G "https://api.scrapecreators.com/v1/tiktok/profile" \
  --data-urlencode "handle=creator_name" \
  -H "x-api-key: $SCRAPECREATORS_API_KEY")

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

The second chained request expands the external transmission from identity lookup to content retrieval, increasing the amount of collected subject data. In security terms, the risk is not code injection here but unnecessary third-party disclosure and over-collection.

Content

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

md
-H "x-api-key: $SCRAPECREATORS_API_KEY")

# 2. Get their recent posts
POSTS=$(curl -s -G "https://api.scrapecreators.com/v3/tiktok/profile/videos" \
  --data-urlencode "handle=creator_name" \
  -H "x-api-key: $SCRAPECREATORS_API_KEY")

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This step transmits a derived video identifier to the external API to obtain comments, deepening subject profiling and potentially collecting large amounts of user-generated content. The chaining makes the workflow more privacy-invasive than a single lookup, especially if used without clear user understanding.

Content

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

3. Get comments on a specific video (extract video ID from posts)

VIDEO_ID=$(echo "$POSTS" | jq -r '.aweme_list[0].aweme_id') COMMENTS=$(curl -s -G "https://api.scrapecreators.com/v1/tiktok/video/comments"
--data-urlencode "video_id=$VIDEO_ID"
-H "x-api-key: $SCRAPECREATORS_API_KEY")

text

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill’s manifest says it should only be used for retrieving data directly from social platforms, but the documentation expands into saving outputs locally and performing downstream analytics. That scope creep can cause the agent to apply the skill in contexts it was explicitly supposed to avoid, increasing the chance of unintended local data handling and policy bypass.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

This example both transmits a handle to a third-party service and saves the resulting data locally. That combination expands risk from external disclosure to local persistence, creating retention and secondary-use concerns inconsistent with the skill’s narrow retrieval-only positioning.

Content

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

bash
# Save raw JSON
curl -s -G "https://api.scrapecreators.com/v1/instagram/profile" \
  --data-urlencode "handle=natgeo" \
  -H "x-api-key: $SCRAPECREATORS_API_KEY" > natgeo_profile.json

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

This example fetches external data and converts it into a local CSV artifact, making subsequent reuse and redistribution easier. The security concern is not the CSV transform itself but that the skill encourages persistence and analysis workflows beyond simple retrieval while using third-party scraped data.

Content

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

md
-H "x-api-key: $SCRAPECREATORS_API_KEY" > natgeo_profile.json

# Save as CSV (extract specific fields with jq)
curl -s -G "https://api.scrapecreators.com/v3/tiktok/profile/videos" \
  --data-urlencode "handle=creator" \
  -H "x-api-key: $SCRAPECREATORS_API_KEY" \
  | jq -r '.aweme_list[] | [.aweme_id, .desc, .statistics.play_count, .statistics.digg_count] | @csv' \

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This metric-extraction example still relies on transmitting the user’s target to an external service, then performs local analysis on the returned data. In context, it broadens the skill from simple fetches into analytics, increasing the chance of overuse and unintended processing of third-party data.

Content

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

Extract key metrics

bash
# Get engagement stats from a profile
curl -s -G "https://api.scrapecreators.com/v1/tiktok/profile" \
  --data-urlencode "handle=creator" \
  -H "x-api-key: $SCRAPECREATORS_API_KEY" \
  | jq '{followers: .statsV2.followerCount, following: .statsV2.followingCount, likes: .statsV2.heartCount}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This aggregation workflow can encourage bulk retrieval and post-processing of subject data after transmission to an external service. The combination of external collection and analytics raises privacy and governance concerns beyond a narrow one-off lookup.

Content

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

Aggregate across posts

bash
# Average engagement across recent posts
curl -s -G "https://api.scrapecreators.com/v3/tiktok/profile/videos" \
  --data-urlencode "handle=creator" \
  -H "x-api-key: $SCRAPECREATORS_API_KEY" \
  | jq '[.aweme_list[] | .statistics.digg_count] | (add / length)'

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

Fetching transcripts sends content identifiers to the third-party API and retrieves potentially rich textual data for further analysis. Transcript data can be more sensitive than simple metadata because it exposes full content context and is easier to search, summarize, or repurpose.

Content

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

Get video transcripts for content analysis

bash
# Fetch transcript of a TikTok video
curl -s -G "https://api.scrapecreators.com/v1/tiktok/video/transcript" \
  --data-urlencode "video_id=VIDEO_ID" \
  -H "x-api-key: $SCRAPECREATORS_API_KEY" | jq -r '.data.transcript'

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

This search/filter example transmits targeting criteria like follower thresholds and audience country to a third-party service, which may reveal business strategy, investigative focus, or profiling intent. The risk is elevated because searches can encode more sensitive intent than simple public-profile retrieval.

Content

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

Search and filter

bash
# Find TikTok creators by niche with audience filters
curl -s -G "https://api.scrapecreators.com/v1/tiktok/creators/popular" \
  --data-urlencode "min_followers=100000" \
  --data-urlencode "audience_country=US" \
  -H "x-api-key: $SCRAPECREATORS_API_KEY" | jq '.data'

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

Even the error-handling example performs an external request with a user-provided handle, meaning debugging steps still transmit data off-platform. This matters because users may not realize that troubleshooting requests have the same privacy implications as normal operation.

Content

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

bash
# Check status code
curl -s -G -o response.json -w "%{http_code}" \
  "https://api.scrapecreators.com/v1/tiktok/profile" \
  --data-urlencode "handle=creator" \
  -H "x-api-key: $SCRAPECREATORS_API_KEY"

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The manifest excludes local file analysis, yet the skill later instructs saving scraped responses to local JSON and CSV files for further use. This inconsistency can mislead an agent into handling local artifacts under a skill that was meant only for remote retrieval, weakening safety boundaries.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.