Back to skill

Security audit

Quant System 5steps

Security checks for vulnerabilities and agentic risk

Overview

The skill uses expected public crypto-market APIs, but its trading outputs can be misleading because it may silently use simulated data and under-tested strategies.

Review this skill carefully before installing for trading work. It does not appear to steal data or persist on the system, but users should treat its outputs as experimental only, verify all market data provenance, and avoid using its backtest or signal results for real trading decisions unless the synthetic-data fallback and strategy execution gaps are fixed or clearly surfaced.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (13)

Lp3

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding
The skill advertises network-capable behavior through its documented multi-source market data collection, but it does not declare any tool scope or permissions. This creates a trust and governance gap: an agent or reviewer cannot clearly determine what external access the skill expects, increasing the risk of over-privileged execution, unreviewed outbound requests, or data exfiltration in environments that rely on manifest-level permission controls.

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
The file presents core skill information in Chinese at L13 and throughout the feature sections, while other parts are in English. This creates a language/locale policy concern because the skill appears to impose a specific language for key instructions without user opt-in or justification.

External Transmission

Medium
Category
Data Exfiltration
Content
# Try Hyperliquid
        try:
            r = requests.post("https://api.hyperliquid.xyz/info", 
                           json={"type": "allMids"}, timeout=10)
            data = r.json()
            coin = symbol.replace("USDT", "")
Confidence
70% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
# Try Hyperliquid
        try:
            r = requests.post("https://api.hyperliquid.xyz/info", 
                           json={"type": "allMids"}, timeout=10)
            data = r.json()
            coin = symbol.replace("USDT", "")
Confidence
70% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
# Try Hyperliquid
        try:
            r = requests.post("https://api.hyperliquid.xyz/info", 
                           json={"type": "allMids"}, timeout=10)
            data = r.json()
            coin = symbol.replace("USDT", "")
Confidence
80% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
# Try Hyperliquid
        try:
            r = requests.post("https://api.hyperliquid.xyz/info", 
                           json={"type": "allMids"}, timeout=10)
            data = r.json()
            coin = symbol.replace("USDT", "")
Confidence
80% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
# Try Hyperliquid
        try:
            r = requests.post("https://api.hyperliquid.xyz/info", 
                           json={"type": "allMids"}, timeout=10)
            data = r.json()
            coin = symbol.replace("USDT", "")
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
# Try Hyperliquid
        try:
            r = requests.post("https://api.hyperliquid.xyz/info", 
                           json={"type": "allMids"}, timeout=10)
            data = r.json()
            coin = symbol.replace("USDT", "")
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
# Try Binance
        try:
            r = requests.get(f"https://api.binance.com/api/v3/ticker/price?symbol={symbol}", timeout=10)
            if r.status_code == 200:
                prices.append(float(r.json()["price"]))
        except:
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
# Try Binance
        try:
            r = requests.get(f"https://api.binance.com/api/v3/ticker/price?symbol={symbol}", timeout=10)
            if r.status_code == 200:
                prices.append(float(r.json()["price"]))
        except:
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
# Try Binance
        try:
            r = requests.get(f"https://api.binance.com/api/v3/ticker/price?symbol={symbol}", timeout=10)
            if r.status_code == 200:
                prices.append(float(r.json()["price"]))
        except:
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Intent-Code Divergence

Medium
Confidence
95% confidence
Finding
The function is documented as returning historical OHLCV data, but if external sources fail it silently fabricates synthetic price candles and returns them as if they were real market history. In a quant-trading skill, this is dangerous because downstream analysis, model training, and backtests can be performed on invented data without any provenance flag, causing materially misleading trading signals and false confidence.

Intent-Code Divergence

Medium
Confidence
93% confidence
Finding
The system claims to generate strategies from many templates, but the backtest engine only implements momentum and a stubbed mean-reversion path while all other generated templates effectively degrade to HOLD. This creates deceptive evaluation output in which users may believe a generated strategy was tested when it was not, leading to unsafe trading decisions based on invalid backtest evidence.

Static analysis

No suspicious patterns detected.