Back to skill

Security audit

Query US import transaction statistics — retrieve import records, container counts, and last-90-day data grouped by state or city dimensions, with cursor-based pagination. Provides granular US import intelligence with geographic breakdowns for targeted market analysis. Designed for export teams, logistics analysts and trade professionals targeting the US market who need to monitor US import activity, analyze container flow patterns, assess state-level and city-level import distribution and evaluate market entry strategies based on real US customs import data.

Security checks across malware telemetry and agentic risk

Overview

This is a disclosed paid API skill for US import statistics, with expected credential and account setup behavior but some install-time guidance needed for plaintext key storage and an undisclosed version check.

Install only if you are comfortable using UpKuaJing's paid API. The skill stores the API key in plaintext at ~/.upkuajing/.env, can create a top-up order when explicitly invoked, and performs a daily version check with the provider. Confirm fees before running queries or recharge actions, and protect or remove the local .env file when no longer needed.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
Findings (14)

Lp3

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding
The skill declares no explicit permissions, yet its documented behavior includes reading environment data, accessing local files under the user's home directory, writing credentials to disk, and making network/API calls. This creates a transparency and consent gap: an agent or user may invoke the skill believing it is limited to a simple data query when it can also touch secrets and local state.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding
The stated purpose is querying US import statistics, but the skill also documents account-management and monetization flows: issuing new API keys, reading account information, creating recharge orders, and retrieving pricing. This expands the operational scope beyond user expectations and increases the chance of unintended credential handling, billing actions, or sensitive account operations under the guise of a data-query skill.

Description-Behavior Mismatch

High
Confidence
96% confidence
Finding
The script implements authentication and billing-related actions such as API key issuance, account lookup, recharge order creation, and pricing queries, which do not match the declared purpose of providing US import statistics. This mismatch is dangerous because users may invoke the skill expecting passive analytics while the code performs account and payment operations against an external service, increasing the risk of unauthorized provisioning or monetization.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The file exposes commands to create API keys and generate recharge/payment orders, which are unrelated to a US import statistics skill and materially expand the capability surface. In the skill context, this is more dangerous because the hidden financial and account-management behavior could be triggered under the guise of a data-query tool, leading to unexpected account creation, billing flows, or external-service abuse.

Context-Inappropriate Capability

Medium
Confidence
97% confidence
Finding
The module makes an outbound HTTP request to a version-check endpoint that is unrelated to the advertised US import-statistics functionality. Even though it only sends the skill name, this creates undisclosed network behavior, expands the trust boundary, and could expose usage telemetry or enable server-driven influence over client behavior.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The skill writes persistent state under the user's home directory for version caching, which is unrelated to its declared analytics purpose. Persistent local storage creates hidden side effects, can reveal usage patterns across runs, and violates least surprise when not disclosed.

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The code implements upgrade detection and stderr notifications that are not part of the declared skill behavior. Undocumented self-update prompting is risky because it introduces hidden functionality and can be abused for social engineering or to normalize unexpected operational behavior in a data-query skill.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The version-check request transmits skill metadata to a remote service without any visible disclosure or user control. In the context of a skill that is supposed to retrieve import statistics, silent telemetry is unexpected and can leak installation or usage information while creating privacy and compliance concerns.

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
90% 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
88% 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
90% confidence
Finding
.env

Unpinned Dependencies

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

Unsafe Defaults

Medium
Category
Tool Misuse
Content
pass  # 如果读取失败,继续执行

    # 不需要认证申请新密钥
    response = make_request('/agent/auth/create', {}, require_auth=False)

    # 检查是否申请成功
    if response.get('code') != 0:
Confidence
89% confidence
Finding
auth=False

Unsafe Defaults

Medium
Category
Tool Misuse
Content
pass  # 如果读取失败,继续执行

    # 不需要认证申请新密钥
    response = make_request('/agent/auth/create', {}, require_auth=False)

    # 检查是否申请成功
    if response.get('code') != 0:
Confidence
89% confidence
Finding
require_auth=False

VirusTotal

65/65 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