Back to skill

Security audit

scraping-tiktok-user-data

Security checks across malware telemetry and agentic risk

Overview

This TikTok scraping skill is purpose-related but needs review because it can collect bulk follower/following data and shows risky API-token handling.

Review before installing. Use it only if you intend to send TikTok account or video identifiers to Apify for processing, set collection limits, avoid follower/following extraction unless necessary, and verify compliance with TikTok terms and privacy obligations. Treat APIFY_TOKEN as a secret, prefer safer auth methods when available, and verify any scripts/run_actor.js before running it.

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 (8)

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The skill encourages scraping and exporting creator history and engagement data without any warning about privacy, platform terms, or appropriate handling of potentially sensitive personal data. In a data-collection skill, omission of such guardrails increases the chance of misuse for profiling, monitoring, or noncompliant collection at scale.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
The skill metadata and description frame the capability as video-history scraping, but the documented inputs also allow extraction of complete follower and following lists, which materially expands the data collection scope. This mismatch can mislead users, reviewers, or policy gates about what data will be collected and increases the risk of unintended bulk collection of relationship data.

External Transmission

Medium
Category
Data Exfiltration
Content
**REST API fallback:**
```bash
curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~tiktok-user-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"username": "<handle>", "maxVideos": 50}'
Confidence
92% confidence
Finding
The skill instructs the user to send data to an external third-party service and includes the API token directly in the request URL. External transmission is expected for this integration, but placing credentials in the URL increases exposure through shell history, process listings, logs, proxies, and server-side URL logging.

External Transmission

Medium
Category
Data Exfiltration
Content
Save `id` as `RUN_ID`. Poll until `status = SUCCEEDED`:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'
```

Fetch results:
Confidence
90% confidence
Finding
The polling example again places `APIFY_TOKEN` in the URL when contacting the external service. Although routine for the workflow, repeating this pattern compounds credential leakage risk via logs and tooling while normalizing insecure handling of secrets.

External Transmission

Medium
Category
Data Exfiltration
Content
Save `id` as `RUN_ID`. Poll until `status = SUCCEEDED`:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'
```

Fetch results:
Confidence
90% confidence
Finding
The polling example again places `APIFY_TOKEN` in the URL when contacting the external service. Although routine for the workflow, repeating this pattern compounds credential leakage risk via logs and tooling while normalizing insecure handling of secrets.

External Transmission

Medium
Category
Data Exfiltration
Content
Save `id` as `RUN_ID`. Poll until `status = SUCCEEDED`:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'
```

Fetch results:
Confidence
90% confidence
Finding
The polling example again places `APIFY_TOKEN` in the URL when contacting the external service. Although routine for the workflow, repeating this pattern compounds credential leakage risk via logs and tooling while normalizing insecure handling of secrets.

Description-Behavior Mismatch

Low
Confidence
82% confidence
Finding
The overview describes a narrowly scoped video-history export for a creator account, yet the inputs allow `startUrls` to be either profile URLs or individual video URLs that are used to extract authors, and also support follower/following collection. This broadens the operational scope beyond the stated 'full video history' workflow.

Missing User Warnings

Low
Confidence
86% confidence
Finding
For markdown files, SQP-2 covers omitted warnings about behaviors affecting privacy or system integrity. The file tells users to set APIFY_TOKEN but does not caution that it is a secret that should not be exposed in logs, shared outputs, or checked into source control.

VirusTotal

63/63 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.