Back to skill

Security audit

X Search 1.0.0

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it claims: it sends X/Twitter search queries to xAI using the user's API key and returns summarized public-post results.

Install this only if you are comfortable sending your X/Twitter search queries and related filters to xAI under your API key. Avoid searching for secrets, private internal names, regulated data, or other sensitive terms unless that is acceptable under your own data-handling rules.

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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (5)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill invokes Python, reads an API key from the environment, and sends user queries to an external service, but it does not declare an explicit tool scope such as permissions or allowed-tools. That weakens least-privilege controls and makes it harder for a host to constrain or transparently authorize the skill’s access to environment data and network egress.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The description contains broad trigger phrases like wanting to 'find tweets,' 'search X/Twitter,' or 'look up what people are saying,' which can match many ordinary requests. Over-broad routing can cause unintended invocation of a networked skill, leading to unnecessary data disclosure to the external API or use of the wrong tool without clear user intent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation explains setup and usage but does not clearly warn that user-supplied search terms are transmitted to the xAI API for processing. In a search skill, queries may contain sensitive topics, internal names, or personal data, so omission of this disclosure increases privacy and compliance risk.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · scripts/search.py (reported line 18)May include surrounding context.

python
def redirect_request(self, req, fp, code, msg, headers, newurl):
        raise HTTPError(newurl, code, f"Redirect to {newurl} blocked (auth safety)", headers, fp)

API_URL = "https://api.x.ai/v1/responses"
MODEL = "grok-4.20-reasoning"
TIMEOUT_S = 120
MAX_HANDLES = 10

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The manifest frames this skill as searching X posts via the xAI API, but the code also accesses a local environment secret (XAI_API_KEY) to operate. While this may be implementation-required, credential retrieval is a capability beyond the user-facing search purpose and is not described in the manifest.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.