Back to skill

Security audit

Query import/export trade trend data — retrieve monthly trade volume trends within a specified time range, with cursor-based pagination for smooth data exploration. Delivers time-series trade intelligence to visualize trade flow patterns and seasonal fluctuations. Designed for trade analysts, supply chain managers and market researchers who need to track trade trajectory changes, monitor monthly volume variations and identify cyclical patterns for forecasting and strategic planning across 220+ countries and territories.

Security checks across malware telemetry and agentic risk

Overview

This paid trade-data skill is not clearly malicious, but it bundles sensitive account, billing, credential storage, and hidden version-check behavior that users should review before installing.

Install only if you are comfortable giving the skill access to an UpKuaJing API key, letting it store that key in a plaintext home-directory file, and using its account and top-up helper commands. Confirm any paid query or recharge action separately, avoid sharing the .env contents in chat or logs, and consider managing the API key yourself rather than letting the skill create and persist one.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (13)

Lp3

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding
The skill declares no explicit permissions while its documented behavior requires environment access, local file reads/writes, and network calls. This hidden capability expansion weakens reviewability and user consent, increasing the chance that sensitive operations like credential handling or external requests occur without adequate oversight.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding
The skill is presented as a trade-trend query tool, but it also performs account creation, balance lookup, payment order creation, credential storage, pricing queries, and version-check/caching operations. This description-behavior mismatch is dangerous because users may authorize a simple data query while the skill also accesses credentials, writes local state, and initiates billing-related workflows.

Description-Behavior Mismatch

High
Confidence
95% confidence
Finding
This file implements API key issuance, account inspection, recharge-order creation, and pricing queries even though the declared skill purpose is only trade-trend retrieval. That scope mismatch increases risk because installing or invoking the skill grants access to sensitive account-management and billing operations that users would not reasonably expect from a data-query tool.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
The code can create recharge/payment orders, which is unrelated to querying trade trends and introduces a direct billing capability. In a skill presented as an analytics tool, hidden or unnecessary payment actions can lead to unauthorized charges, user confusion, or abuse if the skill is triggered in the wrong context.

Context-Inappropriate Capability

Medium
Confidence
88% confidence
Finding
The script can request and persist new API keys even though that is not necessary for basic trade-trend querying as declared. Bundling credential issuance into the skill broadens its privilege surface and can facilitate unauthorized account provisioning or silent credential creation beyond user expectations.

Context-Inappropriate Capability

Medium
Confidence
89% confidence
Finding
Exposing account balances, platform account identifiers, and pricing information exceeds the stated trade-trend retrieval purpose and leaks operational/account metadata. Even if not directly exploitable for code execution, this unnecessarily expands access to sensitive commercial information and can aid social engineering or misuse of the account.

Context-Inappropriate Capability

Medium
Confidence
91% confidence
Finding
The module performs outbound version-check requests to a remote endpoint that are unrelated to the advertised trade-trend querying function. This creates hidden network behavior and metadata disclosure (skill name, timing of use, endpoint contact) that can surprise users, expand the attack surface, and enable tracking or dependency on an external service.

Context-Inappropriate Capability

Low
Confidence
83% confidence
Finding
The code writes persistent cache data under the user's home directory for version-tracking purposes, which is unrelated to the stated skill functionality. While not directly dangerous on its own, undeclared persistence can create privacy concerns, leave forensic artifacts, and support hidden statefulness that users do not expect from a simple data-query skill.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The logging helpers can persist full request parameters and full API responses to local log files, which may include sensitive business data, account details, or identifiers returned by the trade API. Although logging is currently disabled by default, enabling it creates a quiet local data-retention channel without redaction, consent, or access-control safeguards.

Credential Access

High
Category
Privilege Escalation
Content
### **API Key Not Set**
First check if the `~/.upkuajing/.env` file has UPKUAJING_API_KEY;
If UPKUAJING_API_KEY is not set, prompt the user to choose:
1. User has one: User provides it (manually add to ~/.upkuajing/.env file)
2. User doesn't have one: You can apply using the interface (`auth.py --new_key`), the new key will be automatically saved to ~/.upkuajing/.env
Wait for user selection;
Confidence
93% confidence
Finding
.env

Credential Access

High
Category
Privilege Escalation
Content
First check if the `~/.upkuajing/.env` file has UPKUAJING_API_KEY;
If UPKUAJING_API_KEY is not set, prompt the user to choose:
1. User has one: User provides it (manually add to ~/.upkuajing/.env file)
2. User doesn't have one: You can apply using the interface (`auth.py --new_key`), the new key will be automatically saved to ~/.upkuajing/.env
Wait for user selection;

### **Account Top-up**
Confidence
91% confidence
Finding
.env

Credential Access

High
Category
Privilege Escalation
Content
"envFilePath": str(env_file)
        }

    # 保存到 .env 文件
    try:
        with open(env_file, 'w', encoding='utf-8') as f:
            f.write(f"{API_KEY_ENV}={api_key}\n")
Confidence
84% confidence
Finding
.env

Unpinned Dependencies

Low
Category
Supply Chain
Content
httpx>=0.23.0
Confidence
94% confidence
Finding
httpx>=0.23.0

VirusTotal

64/64 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
scripts/common.py:196

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
SKILL.md:58