Back to skill

Security audit

tracking-sports-team-fan-sentiment-twitter

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent Apify/Twitter sentiment-analysis purpose, but it gives unsafe examples that put an Apify API token in request URLs and lacks clear privacy and secret-handling guidance.

Install only if you are comfortable sending the search terms and resulting tweet data to Apify/Twitter scraping infrastructure. Treat APIFY_TOKEN as a secret, prefer SDK or Authorization-header authentication, avoid URL token examples, and set explicit result limits to control cost and data volume.

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
92% confidence
Finding
The skill instructs users to provide an APIFY_TOKEN but gives no warning about treating it as a secret, avoiding logs, or preventing accidental disclosure in chat transcripts, shell history, or shared files. While it does not directly exfiltrate the token beyond intended Apify use, the documentation normalizes unsafe credential handling practices that can lead to credential exposure.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill directs users to send search terms and potentially sensitive monitoring targets to Apify/Twitter scraping infrastructure without any user-facing disclosure about third-party data transmission, retention, or compliance implications. In this context, user queries may reveal business monitoring interests, campaign plans, or sensitive investigative topics, so omission of a privacy notice is a real risk.

External Transmission

Medium
Category
Data Exfiltration
Content
**REST API fallback:**
```bash
curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchTerms": ["[TEAM_NAME]", "#[TeamHashtag]", "[TEAM_NAME] game"], "maxItems": 100}'
Confidence
97% confidence
Finding
This line shows an explicit outbound API request to Apify that includes both the user's query payload and the APIFY_TOKEN in the URL. External transmission is expected for the skill's purpose, but embedding secrets in URLs is dangerous because URLs are commonly captured in shell history, logs, proxies, and monitoring systems.

External Transmission

Medium
Category
Data Exfiltration
Content
Wait for `SUCCEEDED`. Fetch dataset:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN"
```

### Step 3: Classify Results
Confidence
96% confidence
Finding
The dataset retrieval example again places APIFY_TOKEN in the request URL, creating unnecessary credential exposure risk through logs, browser history, terminal history, and intermediary systems. Although retrieving run output is part of normal functionality, the documentation recommends an unsafe authentication pattern.

External Transmission

Medium
Category
Data Exfiltration
Content
Wait for `SUCCEEDED`. Fetch dataset:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN"
```

### Step 3: Classify Results
Confidence
96% confidence
Finding
The dataset retrieval example again places APIFY_TOKEN in the request URL, creating unnecessary credential exposure risk through logs, browser history, terminal history, and intermediary systems. Although retrieving run output is part of normal functionality, the documentation recommends an unsafe authentication pattern.

Static analysis

No suspicious patterns detected.