Back to skill

Security audit

Query trade percentage analysis — retrieve company-level trade share data for a specified HS code, ranked by trade volume. Returns a ranked list of companies with their trade counts, percentages, quantities, amounts and partner counts, with exporter/importer type and recent months filters. Helps trade analysts, sourcing agents and market researchers identify major companies trading a specific product, analyze market concentration, assess supplier competition landscape and discover potential trade partners across global customs data covering 220+ countries and territories.

Security checks across malware telemetry and agentic risk

Overview

This appears to be a real paid customs-data query skill, but it also manages local API keys and can create recharge payment orders, so it needs user review before installation.

Install only if you are comfortable with the skill using an UpKuaJing API key, storing it in ~/.upkuajing/.env, making paid API calls after confirmation, and creating a top-up payment URL if the account balance is insufficient. Treat the API key like a password and review any top-up prompt before proceeding.

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
90% confidence
Finding
The skill declares no explicit permissions, yet its documented behavior requires environment access, reading and writing local files, and network calls. This mismatch weakens transparency and consent boundaries, making it easier for a user or platform to invoke sensitive capabilities without clearly understanding the risk surface.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding
The stated purpose is a trade-share query skill, but the documented workflow also handles API key provisioning, credential storage, account inspection, payment/top-up order creation, pricing queries, and local cache/version writes. This scope expansion increases attack surface and creates opportunities for unexpected credential handling and financially sensitive actions beyond the user's likely expectation.

Description-Behavior Mismatch

High
Confidence
95% confidence
Finding
This file implements API key provisioning, account lookup, pricing lookup, and recharge-order creation, which materially exceeds the declared purpose of a trade-percentage analysis skill. In skill ecosystems, unexpected billing/authentication capabilities increase supply-chain and abuse risk because users may invoke functionality unrelated to the advertised data query behavior.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
The code can create recharge/payment orders via '/agent/auth/pay/url' even though the skill is described as providing company trade-share analysis. Hidden or undeclared payment flows are dangerous because they can trigger financial actions the user did not expect from an analytics skill.

Context-Inappropriate Capability

Medium
Confidence
90% confidence
Finding
The file provisions a new API credential and persists it locally in a .env file although the manifest presents the skill as a data-retrieval tool. Undeclared credential issuance and storage expand the attack surface and can leave sensitive tokens on disk where other local users, tools, or logs may expose them.

Context-Inappropriate Capability

Medium
Confidence
96% confidence
Finding
This module performs an outbound HTTP request to a server-side version endpoint even though the declared skill purpose is trade percentage analysis. That creates hidden network behavior, leaks skill usage metadata to an external service, and expands the attack surface for tracking, SSRF-style misuse through a caller-controlled base URL, or unexpected dependency on remote infrastructure.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The code creates and writes a cache file under the user's home directory for version-check state, which is unrelated to the stated analytics function. While not directly dangerous on its own, it introduces undeclared persistence, leaves execution traces on disk, and can surprise users or violate least-privilege expectations in constrained environments.

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
96% 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
95% confidence
Finding
.env

Credential Access

High
Category
Privilege Escalation
Content
"""
    申请新的 API 密钥。
    """
    # 检查是否已存在 .env 文件和 API key
    env_file = UPKUAJING_ENV_FILE

    if env_file.exists():
Confidence
90% confidence
Finding
.env

Credential Access

High
Category
Privilege Escalation
Content
env_file = UPKUAJING_ENV_FILE

    if env_file.exists():
        # 读取现有的 .env 文件
        try:
            with open(env_file, 'r', encoding='utf-8') as f:
                content = f.read()
Confidence
92% 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
96% confidence
Finding
.env

Unpinned Dependencies

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

VirusTotal

VirusTotal findings are pending for this skill version.

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:59