Back to skill

Security audit

scraping-tweets-from-account

Security checks across malware telemetry and agentic risk

Overview

This skill is mostly a disclosed public tweet-scraping workflow, but it handles an Apify API token in risky command examples and its documented scope is broader than the account-only purpose suggests.

Review before installing. Use this only if you are comfortable sending public Twitter/X collection requests and results through Apify. Avoid pasting real Apify tokens into chat or command lines, prefer safer auth methods where available, set explicit maxItems limits, and confirm whether you want account-only scraping or broader Twitter search behavior.

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

Intent-Code Divergence

Medium
Confidence
91% confidence
Finding
The top-level documentation presents the skill as 'Scraping Tweets from an Account' and 'Exports the full tweet history of any public Twitter/X account.' Later, the Inputs section documents parameters like searchTerms with examples such as '#AI lang:en' and 'from:NASA', which contradict the narrower account-history framing and indicate a more general search scraper.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The skill requires an API credential and repeatedly shows it being passed in command examples, but provides no warning about sensitive handling, logging exposure, shell history retention, or safer auth patterns. In agent or shared-shell contexts, this can lead to inadvertent disclosure of the Apify token and unauthorized use of the user's account/quota.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
The manifest describes a skill for scraping tweets, replies, and media from a Twitter/X account and repeatedly frames usage around a user's account timeline. However, the documented inputs include general search features such as searchTerms, mentions, geolocation, language, minimum engagement thresholds, and content-type filters, which support platform-wide search workflows rather than only account timeline export.

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 '{"twitterHandles": ["<handle>"], "maxItems": 200, "sort": "Latest"}'
Confidence
92% confidence
Finding
This command sends data to an external third-party service and includes the API token in the request URL, which is especially risky because URLs are commonly captured in logs, telemetry, proxies, and shell history. Even if the destination is expected, the pattern increases the chance of credential leakage and unauthorized reuse.

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
91% confidence
Finding
Polling the actor-run endpoint again places the API token in the URL, creating repeated opportunities for secret leakage through logs, terminal history, browser previews, proxy records, or agent traces. The repeated external transmission also sends operational metadata to a third party without any user-facing disclosure language.

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
91% confidence
Finding
Polling the actor-run endpoint again places the API token in the URL, creating repeated opportunities for secret leakage through logs, terminal history, browser previews, proxy records, or agent traces. The repeated external transmission also sends operational metadata to a third party without any user-facing disclosure language.

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
91% confidence
Finding
Polling the actor-run endpoint again places the API token in the URL, creating repeated opportunities for secret leakage through logs, terminal history, browser previews, proxy records, or agent traces. The repeated external transmission also sends operational metadata to a third party without any user-facing disclosure language.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.