Back to skill

Security audit

scholarplotskill

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent remote figure-generation integration, but users should treat submitted figure prompts, data values, and the API key as sensitive.

Install only if you are comfortable sending figure descriptions, edit instructions, and any provided data values to figure.thirdme.com. Do not submit confidential manuscripts, patient data, proprietary datasets, or unpublished results without reviewing the provider's privacy and retention commitments. Protect the API key, keep MCP config files private, and rotate the key if the full URL is ever shared or logged.

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 (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:46
Finding

API Key Exposed Through an MCP URL Query Parameter

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:46, README.en.md:59, and README.cn.md:59
Vulnerability Type: API credential transmitted and stored in a URL query parameter
Risk Level: Medium

Vulnerable Code

SKILL.md:42-48:

json
{
  "mcpServers": {
    "scholarplot-sci-figure": {
      "url": "https://figure.thirdme.com/api/mcp-sse?key=YOUR_API_KEY"
    }
  }
}

README.en.md:55-61:

json
{
  "mcpServers": {
    "scholarplot-sci-figure": {
      "url": "https://figure.thirdme.com/api/mcp-sse?key=YOUR_API_KEY"
    }
  }
}

README.cn.md:55-61:

json
{
  "mcpServers": {
    "scholarplot-sci-figure": {
      "url": "https://figure.thirdme.com/api/mcp-sse?key=YOUR_API_KEY"
    }
  }
}

Technical Analysis

The documented configuration instructs users to replace YOUR_API_KEY with a real credential embedded directly in the MCP endpoint's query string. Although HTTPS protects the URL while it is transmitted over the network, it does not prevent the complete URL from being retained by components that process or display it.

Query strings may be exposed through MCP client diagnostics, application logs, reverse-proxy access logs, network-monitoring systems, configuration backups, screenshots, support bundles, crash reports, or accidentally published configuration files. Any component that records the full endpoint URL may consequently record the API key.

The documentation states that the key is associated with the user's subscription and usage quota. Therefore, possession of a disclosed key may permit an unauthorized party to authenticate to the ScholarPlot service and consume resources associated with the affected account.

Attack Path

  1. A user obtains a valid ScholarPlot API key.
  2. Following the supplied instructions, the user places the key in the MCP endpoint URL inside an MCP client configuration file.
  3. The complete URL ...[truncated 1196 chars]
Remediation
View remediation

Remediation Suggestions

  1. Replace query-string authentication with an Authorization header, such as a bearer token, if supported by the MCP client and service.
  2. Store the API key in an operating-system credential store, MCP secret field, or environment variable rather than directly in the endpoint URL.
  3. Update all English and Chinese configuration examples so that they do not instruct users to interpolate secrets into URLs.
  4. Configure MCP clients, servers, reverse proxies, monitoring systems, and support-bundle generators to redact authentication values and sensitive query parameters.
  5. Ensure configuration files containing credentials are excluded from version control, restricted with least-privilege filesystem permissions, and omitted from diagnostic exports.
  6. Rotate any key that may already have appeared in logs, screenshots, public repositories, or shared configuration files.
  7. Add server-side key revocation, scoped permissions, short-lived credentials where feasible, usage alerts, and rate limits to reduce the impact of credential disclosure.
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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill instructs the agent to send descriptions, data values, and edit instructions to figure.thirdme.com through an MCP server, but it does not clearly disclose this third-party transfer to users. In an academic context, prompts and datasets may contain unpublished results, sensitive research data, or confidential manuscript content, so silent exfiltration to an external service creates a meaningful privacy and confidentiality risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README encourages direct use of a remote MCP service to generate figures from natural-language descriptions and optional exact data values, but it does not clearly warn that prompts, figure descriptions, and research data are transmitted off-device to a third-party server. In an academic context, this can expose unpublished results, proprietary methods, patient-related data, or confidential research materials, especially because the integration is designed to send requests automatically from the assistant to the remote endpoint.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · README.en.md (reported line 165)May include surrounding context.

md
- **Data Accuracy**: Provide exact data values to get the most accurate chart output.
- **Figure Types**: Explicitly specifying the figure type yields more precise results.
- **Processing Time**: Simple figures take about 5-10 seconds; complex figures may take over 30 seconds.
- **Data Security**: Processed data is automatically deleted from servers after 24 hours.

## 📧 Support & Feedback
- 📧 Email: support@thirdme.com

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrase "edit figure" is broad enough to match many ordinary user requests that may not clearly intend to invoke this external tool. In this skill, accidental activation matters because invocation can send user-provided figure content or instructions to a third-party MCP service, creating unnecessary data exposure and confusing tool execution.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.