Back to skill

Security audit

X Interact

Security checks for vulnerabilities and agentic risk

Overview

This skill is a small, coherent Tavily-based X.com search helper, but users should handle the Tavily API key more carefully than the examples show.

Install only if you are comfortable sending search queries and linked-page URLs to Tavily. Prefer configuring the Tavily API key through a secret store, environment variable, or other mcporter-supported protected mechanism rather than pasting a live key into a command-line URL; rotate the key if you already exposed it in shared logs or shell history.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:18
Finding

Tavily API Key Exposed in an Endpoint URL

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:18
Vulnerability Type: API key exposure through command-line arguments and URL query parameters
Risk Level: Medium

Vulnerable Code

bash
mcporter config add tavily https://mcp.tavily.com/mcp/?tavilyApiKey=<YOUR_KEY>

Technical Analysis

The documented configuration method directs users to substitute a real Tavily API key directly into a URL passed as a command-line argument. This may expose the credential through shell history, process inspection while the command is running, terminal session recording, diagnostic output, command auditing, and any configuration or logs that retain the complete endpoint URL.

The endpoint belongs to the declared Tavily integration, so this is not evidence of unauthorized exfiltration. The vulnerability is the insecure handling of the secret rather than the intended transmission of the key to Tavily.

Attack Path

  1. A user replaces <YOUR_KEY> with a valid Tavily API key.
  2. The user executes the documented mcporter config add command.
  3. The command containing the key is retained in shell history, exposed temporarily through process arguments, or saved and logged as a complete endpoint URL.
  4. A local user, support operator, diagnostic collector, or other party with access to the resulting history, logs, or configuration retrieves the key.
  5. The exposed credential is reused to submit Tavily API requests under the victim's account.

Impact Assessment

An attacker who obtains the key can consume the victim's Tavily request quota and issue Tavily API requests associated with the affected account. The likely scope is limited to the permissions and resources granted to that API key; the reviewed code does not establish operating-system privilege escalation, arbitrary local code execution, or access beyond Tavily. Credential exposure could nevertheless cause service disruption, unexpected usage, an ...[truncated 61 chars]

Remediation
View remediation

Remediation Suggestions

  • Do not place API keys in endpoint URL query parameters.
  • Use mcporter's supported secret-management or authentication configuration mechanism, if available.
  • Prefer a protected environment variable, operating-system credential store, or interactive standard-input prompt that does not echo or persist the secret.
  • Store the non-sensitive MCP endpoint separately from its authentication credential.
  • Ensure configuration files containing credentials have restrictive filesystem permissions and are excluded from source control.
  • Redact credentials and sensitive query parameters from logs, diagnostics, and error output.
  • Update the example to use a secure mechanism rather than merely replacing the key with another inline placeholder.
  • Advise users who followed the existing instructions to remove affected shell-history entries and rotate any key that may have been exposed.

T09 · Insecure Skill Coding Practices

Warning
Location
README.md:18
Finding

README Encourages Tavily API Key Exposure in an Endpoint URL

Content
View full analysis

Vulnerability Details

File Location: README.md:18
Vulnerability Type: API key exposure through command-line arguments and URL query parameters
Risk Level: Medium

Vulnerable Code

bash
# Add Tavily MCP server via mcporter
mcporter config add tavily https://mcp.tavily.com/mcp/?tavilyApiKey=<YOUR_KEY>

Technical Analysis

The installation documentation instructs users to embed a Tavily API key in a URL supplied on the command line. After the placeholder is replaced, the credential can become visible in shell history, process listings during execution, recorded terminal sessions, command-audit logs, and persisted configuration containing the full URL.

Although transmission to Tavily is consistent with the skill's declared functionality, query-string and command-line storage unnecessarily broadens exposure of the credential.

Attack Path

  1. A user follows the README and substitutes a valid API key into the example URL.
  2. The user executes the command in an interactive shell.
  3. The command or resulting endpoint configuration is retained in history, logs, diagnostics, backups, or configuration storage.
  4. A party able to read one of those sources extracts the API key from the tavilyApiKey query parameter.
  5. The party uses the key to make Tavily requests and consume resources assigned to the victim.

Impact Assessment

Successful exploitation grants use of the compromised Tavily API credential, including its available request quota and any other capabilities assigned by Tavily to that key. It may result in unauthorized API usage, quota exhaustion, service interruption, or activity attribution to the victim. No evidence was found that this issue grants host-level privileges, persistence, or arbitrary code execution.

Remediation
View remediation

Remediation Suggestions

  • Replace the documented command with an authentication flow that keeps the secret out of the URL and command-line arguments.
  • Use a protected environment variable, credential manager, secret file with restrictive permissions, or non-echoing interactive prompt supported by the tooling.
  • Keep the MCP server address and API credential in separate configuration fields.
  • Document secure file permissions and ensure secret-bearing configuration is not committed to version control.
  • Configure logging and diagnostics to redact API keys and sensitive URL parameters.
  • Include credential-rotation guidance for users who already executed the documented command.
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 (3)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

There is a clear mismatch between the declared purpose and the actual code. The description claims social-media/web-search functionality involving X.com and Tavily, but the code only performs local repository validation of a markdown file. Its primary purpose, resources accessed, and capabilities are entirely different from the declaration.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The README instructs users to embed the Tavily API key directly in a command-line URL, which can expose the credential through shell history, process listings, terminal logs, screenshots, and copied configuration files. Because this is an installation/configuration step for a networked service, the context makes the issue more credible rather than less: users are likely to follow it verbatim and accidentally leak a live API key.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The manifest describes a skill for interacting with X.com by searching tweets, extracting content from URLs linked in tweets, and monitoring X.com accounts/topics. However, the file documents generic Tavily research on arbitrary topics and mentions use alongside GeckoTerminal/DeFiLlama, which broadens the skill into general web research and other data-source workflows beyond the stated X.com-focused purpose.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.