Back to skill

Security audit

X/Twitter Research

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward X/Twitter research helper that uses a disclosed third-party API key and writes local reports, with no hidden persistence or destructive behavior found.

Install only if you are comfortable giving the skill access to a twitterapi.io API key, sending your search terms and account lookups to that provider, and incurring small API usage costs. Review the output directory before running the helper script if filename or location matters.

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

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This skill instructs sending requests to an external third-party API using a locally sourced secret API key. Even though the transmitted data appears limited to search queries, the skill causes outbound network access and secret use without any trust, data handling, or exfiltration warning, which creates risk in an agent environment.

Content

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

Search for tweets matching a query.

bash
curl -s "https://api.twitterapi.io/twitter/tweet/advanced_search?query=solana&queryType=Latest" \
  -H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:5]'

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

The trends endpoint sends a request to an external service authenticated with a local API key, creating third-party data exposure and credential-use risk. In an agent context, any network-capable skill should clearly disclose remote transmission and the destination because execution may happen with broader ambient permissions.

Content

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

Get current trending topics.

bash
curl -s "https://api.twitterapi.io/twitter/trends" \
  -H "X-API-Key: $TWITTERAPI_KEY" | jq '.trends[:10]'

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

Fetching user tweets requires outbound communication to a third-party API with an API key loaded from the local system. While the use case is legitimate research, the security issue is the unguarded external transmission pattern and reliance on local secrets in a skill that does not state any approval or minimization controls.

Content

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

Get latest tweets from a specific account.

bash
curl -s "https://api.twitterapi.io/twitter/user/last_tweets?userName=solana" \
  -H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:5]'

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

This endpoint sends data to a third-party profile lookup service using a local API key, which is an external transmission event. The danger is not the endpoint alone but that the skill normalizes unsupervised network access and secret consumption without describing safeguards, increasing the chance of misuse in a broader agent workflow.

Content

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

Get profile info for a user.

bash
curl -s "https://api.twitterapi.io/twitter/user/info?userName=solana" \
  -H "X-API-Key: $TWITTERAPI_KEY" | jq '.user'

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This workflow step sends search queries to an external API using a local secret, making it a real external transmission issue. In context, the queries are topic-based and low sensitivity, so the impact is moderate rather than high, but the repeated pattern shows the skill is designed for routine third-party communication without explicit guardrails.

Content

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

bash
# General Solana buzz
curl -s "https://api.twitterapi.io/twitter/tweet/advanced_search?query=solana&queryType=Top" \
  -H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:20]'

# Solana + AI intersection

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This search example transmits query terms to a third-party service and authenticates with a local API key, so it is a true external transmission finding. Although the content is ordinary research text, the lack of approval and disclosure around remote access and secret usage makes it risky in an automated agent setting.

Content

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

md
-H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:20]'

# Solana + AI intersection
curl -s "https://api.twitterapi.io/twitter/tweet/advanced_search?query=solana%20AI%20agent&queryType=Latest" \
  -H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:10]'

# Solana DeFi

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

The DeFi search call is another outbound request to a third-party API using a locally loaded secret, which qualifies as a real vulnerability pattern in this review context. The business purpose is benign, but repeated unaudited network requests can leak prompts, targets, or usage metadata and can spend billable API credits.

Content

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

-H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:10]'

Solana DeFi

curl -s "https://api.twitterapi.io/twitter/tweet/advanced_search?query=solana%20defi&queryType=Latest"
-H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:10]'

text

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

Retrieving recent tweets from a named account involves authenticated communication with an external provider and therefore represents genuine external transmission. The context reduces severity because the requested content is public social-media data, but the skill still uses local credentials and outbound access without clear operator safeguards.

Content

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

bash
# Official Solana
curl -s "https://api.twitterapi.io/twitter/user/last_tweets?userName=solana" \
  -H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:5]'

# Colosseum (hackathon organizer)

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

This account lookup example is a true external transmission because it sends a remote request with an API key to a third-party service. The main risk is operational: the skill could be invoked repeatedly to transmit search/account interests and consume paid API resources without explicit acknowledgment.

Content

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

md
-H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:5]'

# Colosseum (hackathon organizer)
curl -s "https://api.twitterapi.io/twitter/user/last_tweets?userName=colosseum" \
  -H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:5]'

# Helius (infra)

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

This endpoint invocation again performs third-party network access using a local secret, so it is a valid finding. The surrounding skill is clearly intended for legitimate research, which points to benign intent, but that context does not remove the risk of uncontrolled egress and credential usage in an agent environment.

Content

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

md
-H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:5]'

# Helius (infra)
curl -s "https://api.twitterapi.io/twitter/user/last_tweets?userName=heaborada" \
  -H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:5]'

# Jupiter (DEX)

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

This final example also instructs outbound requests to api.twitterapi.io with a locally sourced API key, making it a true external transmission issue. The data requested is public and low sensitivity, so impact is moderate, but the skill's repeated pattern of remote access and credential use without safety notices keeps the concern valid.

Content

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

-H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:5]'

Jupiter (DEX)

curl -s "https://api.twitterapi.io/twitter/user/last_tweets?userName=JupiterExchange"
-H "X-API-Key: $TWITTERAPI_KEY" | jq '.tweets[:5]'

text

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The script sources a local secrets file to load TWITTERAPI_KEY, which is a sensitive credential access operation. While the file has basic comments and progress messages, there is no user-facing disclosure that the script reads credentials from a secrets file before making authenticated requests.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The curl call transmits search queries and an API key to api.twitterapi.io, and similar requests recur throughout the script. Although the script prints status messages, it does not explicitly warn the user that it sends request data to a third-party service.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

This markdown skill describes creating an output file at a specific path, which affects user data in the workspace. The document does not include any user warning or disclosure about the file-write behavior near the workflow or output instructions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The script begins writing a markdown report to a path under the selected output directory using shell redirection. It does print the output path, but it does not explicitly disclose beforehand that running the script will create a local report file containing fetched content.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.