Back to skill

Security audit

xAI Plus

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a real xAI/Grok integration, but it needs review because it sends user content to xAI, uses broad credential fallbacks, and includes guidance for platform and AI-detection avoidance.

Review before installing. Use it only if you are comfortable sending prompts, queries, images or screenshots, draft posts, X URLs, and public account analysis targets to xAI using an API key that may be read from environment variables or local Clawdbot config, including related skill entries. Avoid using the voice and post-optimization workflows for impersonation, deceptive content, spam, or evading platform safeguards.

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
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (25)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill invokes Node scripts that use environment variables and external network access, but it does not declare an explicit tool scope such as allowed-tools or permissions. This weakens least-privilege controls and can let the runtime grant broader capabilities than users or orchestrators expect, especially for a skill that sends prompts, images, and search queries to third-party services.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger list includes broad phrases like 'grok', 'xai', 'search x', 'search twitter', and 'x trends', which can match ordinary user requests and auto-activate the skill unexpectedly. Because this skill performs external searches and transmits user-provided content to third-party services, overbroad routing increases the chance of unintended data exposure or tool execution.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill documentation directs users to send prompts, searches, images, and X content to xAI and web-search services, but it does not prominently warn that this data leaves the local environment and is shared with third parties. In a skill handling free-form prompts and image inputs, missing disclosure can cause accidental transmission of sensitive, proprietary, or personal information.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The voice-analysis prompt instructs collection and analysis of another account's recent posts without any privacy, consent, or acceptable-use warning. Even if the content is public, packaging this as a workflow for profiling a person's 'voice' increases misuse risk for impersonation, targeted manipulation, or unconsented behavioral analysis.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The post-safety workflow asks users to submit draft text or fetch post content for analysis, but it does not warn that this content may be sent to external services or APIs. That omission can lead users to disclose unpublished drafts, sensitive campaign material, or third-party content without informed consent or appropriate data handling expectations.

Content

No source excerpt is available for this finding.

Ssd 4

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Taken together, the post-safety scoring, AI-signal detection, 'missing human signals,' and optimization guidance create a workflow for making generated or manipulative content appear more human while improving reach. This cumulative design meaningfully lowers the barrier to deceptive content laundering and platform-evasion at scale.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This section goes beyond neutral analysis and provides concrete advice for manipulating X ranking signals, such as maximizing reply loops, timing posts around diversity decay, and minimizing negative feedback. In a skill whose purpose includes content analysis, that guidance materially enables algorithm-gaming and can be abused for spammy or deceptive growth tactics.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The script reads secrets and configuration not only from its own skill entry but also from unrelated local Clawdbot skill entries such as xai, grok-search, and search-x. That broad fallback behavior creates unnecessary credential/config harvesting capability and violates least-privilege, increasing the chance that a user’s unrelated API keys are silently reused or exposed through this skill’s execution path.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The script sends user-provided post text, account handles, topic queries, and potentially fetched X post content to xAI’s external API without any explicit warning, consent prompt, or redaction step. This is dangerous because users may provide drafts, research topics, or account-analysis targets they assume remain local, causing unintended disclosure of sensitive or proprietary content to a third party.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This code performs a network POST to xAI’s responses endpoint containing the assembled prompt, which includes user-supplied content and analysis targets. External transmission is expected for a cloud AI integration, but it remains a real data-exposure risk when the tool does not minimize, warn about, or gate what is being sent.

Content

Scanner excerpt · scripts/analyze.mjs (reported line 326)May include surrounding context.

js
temperature: 0,
};

const res = await fetch("https://api.x.ai/v1/responses", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This code performs a network POST to xAI’s responses endpoint containing the assembled prompt, which includes user-supplied content and analysis targets. External transmission is expected for a cloud AI integration, but it remains a real data-exposure risk when the tool does not minimize, warn about, or gate what is being sent.

Content

Scanner excerpt · scripts/analyze.mjs (reported line 326)May include surrounding context.

js
temperature: 0,
};

const res = await fetch("https://api.x.ai/v1/responses", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",

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/chat.mjs (reported line 148)May include surrounding context.

js
store: false,
};

const res = await fetch("https://api.x.ai/v1/responses", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",

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/grok_search.mjs (reported line 252)May include surrounding context.

js
store: false,
};

const res = await fetch("https://api.x.ai/v1/responses", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The script sends the full prompt and any attached images to xAI's external API but provides no runtime warning or confirmation to the user. In a CLI used for research or analysis, this can cause accidental disclosure of sensitive text, local image content, or proprietary data to a third party.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This code reads an API key from environment variables and local configuration, then later uses it in an authenticated network request to xAI. While the file has internal comments describing lookup priority, it does not provide a user-facing warning, confirmation, or explicit disclosure that credentials will be read from ~/.clawdbot/clawdbot.json and sent to an external service.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The script constructs a prompt from the supplied query and sends it to https://api.x.ai/v1/responses. Although the tool's purpose is search, the file does not include a clear user-facing disclosure in usage text or output that the provided query content will be transmitted to a third-party service.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script harvests an xAI API key from a broad set of entries in a local ~/.clawdbot/clawdbot.json file, including unrelated skills, even though its stated purpose is only to list available xAI models. This expands the script's access to secrets beyond explicit user intent and creates a cross-skill credential access path, which is dangerous in an agent/skill ecosystem because a seemingly simple utility can silently consume secrets from other configurations.

Content

No source excerpt is available for this finding.

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 · scripts/chat.mjs (reported line 148)May include surrounding context.

js
let data;
try {
  data = await fetchJson("https://api.x.ai/v1/language-models");
} catch {
  data = await fetchJson("https://api.x.ai/v1/models");
}

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 · scripts/grok_search.mjs (reported line 252)May include surrounding context.

js
let data;
try {
  data = await fetchJson("https://api.x.ai/v1/language-models");
} catch {
  data = await fetchJson("https://api.x.ai/v1/models");
}

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 · scripts/models.mjs (reported line 72)May include surrounding context.

js
let data;
try {
  data = await fetchJson("https://api.x.ai/v1/language-models");
} catch {
  data = await fetchJson("https://api.x.ai/v1/models");
}

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 · scripts/models.mjs (reported line 74)May include surrounding context.

js
let data;
try {
  data = await fetchJson("https://api.x.ai/v1/language-models");
} catch {
  data = await fetchJson("https://api.x.ai/v1/models");
}

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The vision examples encourage users to pass local images and screenshots to an external xAI model without any privacy or data-handling warning. In this skill's context, screenshots may contain source code, credentials, internal dashboards, or personal data, so omission of an explicit disclosure can lead to accidental exfiltration of sensitive information to a third-party service.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

This markdown file includes operational advice to 'Cache results locally' when handling rate limits, but it does not mention any privacy or data-retention implications of storing retrieved search data on the user's system. Because SQP-2 applies to markdown files when behaviors could affect user data or privacy, this omission merits a warning finding.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The manifest describes search, chat, and analysis capabilities for X/web content via xAI's API. This section instead gives operational guidance on posting volume, reach, reply loops, and avoiding spam/shadowban, which is content distribution strategy rather than search/chat/analysis behavior.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The script pulls credentials and model settings from a global ~/.clawdbot configuration and even from multiple unrelated skill entries. This creates cross-skill secret reuse and implicit trust boundaries, so one skill can consume credentials intended for another integration without explicit user consent, increasing the risk of accidental secret misuse and unintended account/API access.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.env_credential_access, suspicious.exposed_secret_literal

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/analyze.mjs:36

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/chat.mjs:34

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/grok_search.mjs:44

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
scripts/analyze.mjs:113

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
scripts/chat.mjs:131

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
scripts/grok_search.mjs:156

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
scripts/models.mjs:53