Back to skill

Security audit

X-Twitter news search

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Twitter/X search helper that uses the user's bearer token to query X's API and return tweet JSON, with no hidden code or persistence beyond token configuration guidance.

Install only if you are comfortable providing a Twitter/X API bearer token and paying X API usage costs. Avoid using confidential names, incidents, customer data, or secrets as search keywords, especially from automated cron or agent workflows.

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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (9)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger language is very broad, including generic phrases and automatic invocation by cron jobs or other agents, which can cause the skill to run in contexts the user did not clearly intend. Because this skill sends search terms to an external API and incurs API cost, unintended invocation can lead to privacy leakage of user-provided topics and unnecessary spend.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill description does not clearly warn that caller-supplied keywords will be transmitted to X/Twitter's external API. If users or upstream agents pass sensitive names, incident details, or internal project terms, that data may be disclosed to a third party without informed consent.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

The quick-reference example demonstrates immediate transmission of the query and token-authenticated request to X/Twitter's API. While this is core functionality rather than malicious behavior, it confirms the skill sends data off-platform and therefore creates third-party disclosure and cost-incurring risk if invoked carelessly.

Content

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

Quick reference

bash
curl -s -G "https://api.x.com/2/tweets/search/recent" \
  --data-urlencode 'query=("AI agent" OR "agentic AI") (lang:en) -is:reply -is:retweet' \
  --data-urlencode "max_results=30" \
  --data-urlencode "start_time=$(date -u -v-24H +%Y-%m-%dT%H:%M:%SZ)" \

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The parameters table sets the default 'languages' value to '["en"]', which means the skill will return English-only results unless the caller overrides it. This is a natural-language policy concern because it imposes a locale preference without explicit user opt-in or justification.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

This second E1 finding at the same location reflects the same underlying behavior: outbound transmission to a third-party API. In the context of a search skill, the danger is not the network call itself but the absence of safeguards around what data may be included in the transmitted query.

Content

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

Use start_time as an API parameter for the time window:

bash
curl -s -G "https://api.x.com/2/tweets/search/recent" \
  --data-urlencode "query=QUERY_HERE" \
  --data-urlencode "max_results=50" \
  --data-urlencode "start_time=ISO_TIMESTAMP" \

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

This second E1 finding at the same location reflects the same underlying behavior: outbound transmission to a third-party API. In the context of a search skill, the danger is not the network call itself but the absence of safeguards around what data may be included in the transmitted query.

Content

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

Use start_time as an API parameter for the time window:

bash
curl -s -G "https://api.x.com/2/tweets/search/recent" \
  --data-urlencode "query=QUERY_HERE" \
  --data-urlencode "max_results=50" \
  --data-urlencode "start_time=ISO_TIMESTAMP" \

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/twitter-api.md (reported line 6)May include surrounding context.

Endpoint

text
GET https://api.x.com/2/tweets/search/recent

Searches tweets from the last 7 days.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/twitter-api.md (reported line 100)May include surrounding context.

Endpoint

text
GET https://api.x.com/2/tweets/search/recent

Searches tweets from the last 7 days.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The quick reference hard-codes 'lang:en', which implies English-only results by default. Forcing a specific language without explicit user choice can violate language/locale policy expectations unless the restriction is documented as optional or justified.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.