Back to skill

Security audit

Exchange Rate Inquiry & Conversion - 汇率查询

Security checks across malware telemetry and agentic risk

Overview

This skill is a straightforward exchange-rate lookup tool that uses a disclosed JisuAPI key and sends currency query parameters to JisuAPI for live data.

Install only if you are comfortable using JisuAPI for exchange-rate data. Provide a scoped JISU_API_KEY, expect currency/date/bank query details to be sent to api.jisuapi.com, and avoid placing sensitive personal or business context in lookup prompts.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (13)

Lp3

Medium
Category
MCP Least Privilege
Confidence
81% confidence
Finding
The skill metadata declares runtime requirements for an environment variable and a Python binary, and the described functionality clearly relies on outbound requests to JisuAPI, yet no explicit permission model is documented for env access or network use. This creates a transparency and governance gap: an agent may invoke the skill without users realizing it can read API credentials and transmit query data to a third party.

Vague Triggers

Medium
Confidence
74% confidence
Finding
The activation guidance includes broad language such as '或类似汇率换算问题时,使用本技能', which can cause overly permissive matching on loosely related financial queries. That increases the chance of unintended invocation and unnecessary transmission of user prompts to the external API, especially for ambiguous requests.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
Although the document mentions JisuAPI as the data source, it does not clearly warn users that their request contents will be sent to an external third-party provider for processing. This is a privacy and consent issue because user-entered financial queries may be disclosed outside the local agent environment without explicit notice.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill sends user-provided currency/query parameters together with the API credential to a third-party service (api.jisuapi.com) without any in-file disclosure, consent flow, or data-handling notice. Even though this is necessary for the skill’s function, it creates a privacy and trust risk because user requests and credential usage are transmitted off-platform to an external provider.

Missing User Warnings

Low
Confidence
83% confidence
Finding
The skill reads a sensitive API key from the JISU_API_KEY environment variable but provides no explicit notice about credential use, scope, or handling beyond failing if it is absent. This is not direct secret exfiltration in the code, but it is a security hygiene issue because operators may not realize a secret is required and will be transmitted to a third-party API on each request.

External Transmission

Medium
Category
Data Exfiltration
Content
import requests


EXCHANGE_CONVERT_URL = "https://api.jisuapi.com/exchange/convert"
EXCHANGE_SINGLE_URL = "https://api.jisuapi.com/exchange/single"
EXCHANGE_CURRENCY_URL = "https://api.jisuapi.com/exchange/currency"
EXCHANGE_BANK_URL = "https://api.jisuapi.com/exchange/bank"
Confidence
95% confidence
Finding
https://api.jisuapi.com/

External Transmission

Medium
Category
Data Exfiltration
Content
EXCHANGE_CONVERT_URL = "https://api.jisuapi.com/exchange/convert"
EXCHANGE_SINGLE_URL = "https://api.jisuapi.com/exchange/single"
EXCHANGE_CURRENCY_URL = "https://api.jisuapi.com/exchange/currency"
EXCHANGE_BANK_URL = "https://api.jisuapi.com/exchange/bank"
EXCHANGE_REALTIME_URL = "https://api.jisuapi.com/exchange/realtime"
Confidence
95% confidence
Finding
https://api.jisuapi.com/

External Transmission

Medium
Category
Data Exfiltration
Content
EXCHANGE_CONVERT_URL = "https://api.jisuapi.com/exchange/convert"
EXCHANGE_SINGLE_URL = "https://api.jisuapi.com/exchange/single"
EXCHANGE_CURRENCY_URL = "https://api.jisuapi.com/exchange/currency"
EXCHANGE_BANK_URL = "https://api.jisuapi.com/exchange/bank"
EXCHANGE_REALTIME_URL = "https://api.jisuapi.com/exchange/realtime"
EXCHANGE_BANKHISTORY_URL = "https://api.jisuapi.com/exchange/bankhistory"
Confidence
95% confidence
Finding
https://api.jisuapi.com/

External Transmission

Medium
Category
Data Exfiltration
Content
EXCHANGE_CONVERT_URL = "https://api.jisuapi.com/exchange/convert"
EXCHANGE_SINGLE_URL = "https://api.jisuapi.com/exchange/single"
EXCHANGE_CURRENCY_URL = "https://api.jisuapi.com/exchange/currency"
EXCHANGE_BANK_URL = "https://api.jisuapi.com/exchange/bank"
EXCHANGE_REALTIME_URL = "https://api.jisuapi.com/exchange/realtime"
EXCHANGE_BANKHISTORY_URL = "https://api.jisuapi.com/exchange/bankhistory"
EXCHANGE_HISTORY_URL = "https://api.jisuapi.com/exchange/history"
Confidence
95% confidence
Finding
https://api.jisuapi.com/

External Transmission

Medium
Category
Data Exfiltration
Content
EXCHANGE_SINGLE_URL = "https://api.jisuapi.com/exchange/single"
EXCHANGE_CURRENCY_URL = "https://api.jisuapi.com/exchange/currency"
EXCHANGE_BANK_URL = "https://api.jisuapi.com/exchange/bank"
EXCHANGE_REALTIME_URL = "https://api.jisuapi.com/exchange/realtime"
EXCHANGE_BANKHISTORY_URL = "https://api.jisuapi.com/exchange/bankhistory"
EXCHANGE_HISTORY_URL = "https://api.jisuapi.com/exchange/history"
EXCHANGE_HISTORY2_URL = "https://api.jisuapi.com/exchange/history2"
Confidence
95% confidence
Finding
https://api.jisuapi.com/

External Transmission

Medium
Category
Data Exfiltration
Content
EXCHANGE_CURRENCY_URL = "https://api.jisuapi.com/exchange/currency"
EXCHANGE_BANK_URL = "https://api.jisuapi.com/exchange/bank"
EXCHANGE_REALTIME_URL = "https://api.jisuapi.com/exchange/realtime"
EXCHANGE_BANKHISTORY_URL = "https://api.jisuapi.com/exchange/bankhistory"
EXCHANGE_HISTORY_URL = "https://api.jisuapi.com/exchange/history"
EXCHANGE_HISTORY2_URL = "https://api.jisuapi.com/exchange/history2"
Confidence
95% confidence
Finding
https://api.jisuapi.com/

External Transmission

Medium
Category
Data Exfiltration
Content
EXCHANGE_BANK_URL = "https://api.jisuapi.com/exchange/bank"
EXCHANGE_REALTIME_URL = "https://api.jisuapi.com/exchange/realtime"
EXCHANGE_BANKHISTORY_URL = "https://api.jisuapi.com/exchange/bankhistory"
EXCHANGE_HISTORY_URL = "https://api.jisuapi.com/exchange/history"
EXCHANGE_HISTORY2_URL = "https://api.jisuapi.com/exchange/history2"
Confidence
95% confidence
Finding
https://api.jisuapi.com/

External Transmission

Medium
Category
Data Exfiltration
Content
EXCHANGE_REALTIME_URL = "https://api.jisuapi.com/exchange/realtime"
EXCHANGE_BANKHISTORY_URL = "https://api.jisuapi.com/exchange/bankhistory"
EXCHANGE_HISTORY_URL = "https://api.jisuapi.com/exchange/history"
EXCHANGE_HISTORY2_URL = "https://api.jisuapi.com/exchange/history2"


def convert_exchange(appkey: str, req: dict):
Confidence
95% confidence
Finding
https://api.jisuapi.com/

VirusTotal

63/63 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.