Back to skill

Security audit

QC Data Processor

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed QC data analysis MCP server, with no evidence of hidden exfiltration or destructive behavior, but it should only be used with trusted local data files and controlled dependencies.

Install only in an environment where the MCP server can access the QC files you intend to analyze. Avoid pointing it at sensitive unrelated files, and prefer pinning or locking dependencies to reviewed versions before production use.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • 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 (9)

Vague Triggers

Medium
Confidence
87% confidence
Finding
The trigger keyword list includes broad, common terms such as "日报", "周报", and "客诉", which can match routine business conversations unrelated to SPC or reliability analysis. This increases the chance of unintended skill activation, causing the agent to route user requests to this skill inappropriately and potentially expose local file-processing behavior or produce misleading analysis in the wrong context.

Missing User Warnings

Low
Confidence
93% confidence
Finding
The function trusts `_file_path` from `data_schema` and directly opens it with `pd.read_csv`/`pd.read_excel` without validation, restriction, or user disclosure. In an MCP/server context, this can become arbitrary local file read, allowing a caller to access unintended files on the host if they can influence `data_schema`.

Unpinned Dependencies

Low
Category
Supply Chain
Content
mcp>=1.0.0
pandas>=2.0.0
openpyxl>=3.0.0
numpy>=1.24.0
Confidence
90% confidence
Finding
Using a lower-bounded dependency specifier like `mcp>=1.0.0` makes builds non-reproducible and allows future package releases to be pulled in without review. This increases supply-chain risk and can unexpectedly introduce vulnerable or breaking versions into a QC data processing server that may parse untrusted files and expose networked MCP functionality.

Unpinned Dependencies

Low
Category
Supply Chain
Content
mcp>=1.0.0
pandas>=2.0.0
openpyxl>=3.0.0
numpy>=1.24.0
scipy>=1.10.0
Confidence
87% confidence
Finding
`pandas>=2.0.0` is unpinned, so installations may resolve to different versions over time. While this is often operational rather than directly exploitable, it still creates supply-chain and reproducibility risk, especially for software that ingests external data files.

Unpinned Dependencies

Low
Category
Supply Chain
Content
mcp>=1.0.0
pandas>=2.0.0
openpyxl>=3.0.0
numpy>=1.24.0
scipy>=1.10.0
reliability>=0.8.0
Confidence
87% confidence
Finding
`openpyxl>=3.0.0` permits any newer release to be installed, which can introduce unreviewed code paths into Excel parsing functionality. Because this skill likely processes spreadsheet input, dependency drift in a file-parsing library increases the attack surface for malicious document handling issues.

Unpinned Dependencies

Low
Category
Supply Chain
Content
mcp>=1.0.0
pandas>=2.0.0
openpyxl>=3.0.0
numpy>=1.24.0
scipy>=1.10.0
reliability>=0.8.0
Confidence
86% confidence
Finding
`numpy>=1.24.0` is not version-pinned, so environments may install different releases without review. This primarily creates integrity and reproducibility concerns and can indirectly affect security if future compromised or vulnerable builds are consumed.

Unpinned Dependencies

Low
Category
Supply Chain
Content
pandas>=2.0.0
openpyxl>=3.0.0
numpy>=1.24.0
scipy>=1.10.0
reliability>=0.8.0
Confidence
86% confidence
Finding
`scipy>=1.10.0` allows arbitrary newer versions, which weakens dependency control and reproducibility. In analytical software, this is usually a supply-chain hygiene issue rather than an immediate exploit, but it still raises risk when combined with automated deployments.

Unpinned Dependencies

Low
Category
Supply Chain
Content
openpyxl>=3.0.0
numpy>=1.24.0
scipy>=1.10.0
reliability>=0.8.0
Confidence
86% confidence
Finding
`reliability>=0.8.0` is also unpinned, allowing unreviewed future versions into the environment. For a server performing statistical and reliability analysis, this creates supply-chain risk and can introduce insecure or unstable behavior unexpectedly.

Known Vulnerable Dependency: mcp==1.0.0 — 3 advisory(ies): CVE-2025-53366 (MCP Python SDK vulnerability in the FastMCP Server causes validation error, lead); CVE-2025-66416 (Model Context Protocol (MCP) Python SDK does not enable DNS rebinding protection); CVE-2025-53365 (MCP Python SDK has Unhandled Exception in Streamable HTTP Transport, Leading to )

High
Category
Supply Chain
Confidence
98% confidence
Finding
The dependency specification allows installation of `mcp==1.0.0`, which is reported as affected by multiple high-severity advisories including DNS rebinding protection gaps and transport/validation issues. Because this skill is an MCP server, the vulnerable package is directly in the network-exposed control plane, making the context materially more dangerous than a passive library use.

Static analysis

No suspicious patterns detected.