Back to skill

Security audit

qieman-mcp

Security checks for vulnerabilities and agentic risk

Overview

The skill appears intended for legitimate financial data access, but its setup flow asks the agent to handle SMS login, personal profile details, and an API key while installing an unpinned global CLI.

Review before installing. Prefer installing a pinned, verified CLI version from a trusted registry, complete login and SMS verification directly in the provider website yourself, and avoid pasting SMS codes or API keys into the agent chat. Treat any fund holdings, asset, income, liability, or family finance data sent through the skill as shared with the external qieman MCP service.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
references/初始化工作流.md:32
Finding
Unpinned Global npm Package Installation Through a Third-Party Registry## Vulnerability Details **File Location**: `references/初始化工作流.md`, line 32 **Vulnerability Type**: Supply-chain risk from an unpinned dependency and external registry mirror **Risk Level**: Medium **Complete Code Snippet**: ```bash npm install -g qieman-mcp-cli --registry=https://registry.npmmirror.com ``` ### Technical Analysis The initialization workflow recommends globally installing `qieman-mcp-cli` without pinning an exact version and explicitly retrieves it through a third-party npm registry mirror. The reviewed project provides no lockfile, integrity hash, signature verification, or other mechanism that binds installation to audited package contents. npm installation can execute package lifecycle scripts. Consequently, compromise of the package publisher, package release, registry mirror, or dependency chain could cause attacker-controlled code to execute during installation. Because the installation is global, the affected package is also placed outside the project workspace and may remain available to later sessions. This finding concerns the installation mechanism. The audit found no evidence that the package or registry is currently malicious. ### Attack Path 1. An attacker compromises the package publisher account, a transitive dependency, or the configured registry mirror. 2. The attacker publishes or serves a malicious package version containing an npm lifecycle script or modified CLI implementation. 3. A user follows the documented initialization workflow and runs the unpinned global installation command. 4. npm resolves the mutable package version from the specified mirror and executes applicable lifecycle scripts. 5. The malicious code runs with the permissions of the user executing npm and may replace the expected CLI with attacker-controlled behavior. 6. Subsequent CLI configuration or MCP calls could expose data handled by that process, including the API key or financial information supplied to the ...[truncated 558 chars]
Remediation
## Remediation Suggestions 1. Pin `qieman-mcp-cli` to a reviewed exact version rather than resolving the latest mutable release. 2. Prefer the official npm registry unless the mirror is explicitly trusted and independently verified. 3. Publish and verify package provenance, signatures, or integrity hashes before installation. 4. Prefer a project-local dependency managed by a lockfile over a global installation. 5. Disable npm lifecycle scripts during installation where functionality permits, then explicitly run only reviewed setup operations. 6. Document the expected package publisher, version, and verification procedure so users can detect substitution. 7. Run the CLI with least privilege and ensure API keys and other sensitive values are stored with restrictive filesystem permissions and masked in command output.
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 (3)

Vague Triggers

Medium
Confidence
96% confidence
Finding
The skill description is extremely broad and covers many common finance-related user intents, plus imperative wording like '优先使用本 Skill 获取真实数据与可执行能力' encourages default routing to this skill. That increases the chance of unintended activation on ordinary requests, causing unnecessary external data access and tool execution in a sensitive financial context.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The workflow directs the agent to collect a phone number, SMS verification code, and additional identity/profile fields in order to obtain and configure an API key. This is risky because it expands data collection beyond the skill’s core finance-query function and asks the agent to handle authentication secrets and personal data that should generally be entered directly by the user, increasing privacy, account takeover, and improper credential-handling risk.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill instructs handling of sensitive personal data and credentials without any privacy notice, secret-handling guidance, or limitation on storage and reuse. Because the workflow includes SMS verification and API-key configuration, the absence of explicit safeguards makes accidental disclosure, logging, or misuse of secrets more likely.

Static analysis

No suspicious patterns detected.