Back to skill

Security audit

Shopee-店铺广告

Security checks across malware telemetry and agentic risk

Overview

The skill mostly matches Shopee Ads usage, but it also bundles sensitive account, API-key, payment, and default data-storage behavior that users should review before installing.

Install only if you intend to let this skill access LinkFox/Shopee Ads through an API key, read advertising account data, and potentially create or edit paid campaigns. Treat onboarding and billing as sensitive: do not provide phone/SMS codes or create payment orders unless you explicitly want LinkFox account setup or recharge help. Avoid custom gateway URL environment overrides unless you trust the endpoint, review every create/edit/order action before it runs, and clean up saved response JSON, QR images, and shell-profile API keys when no longer needed.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (18)

Tainted flow: 'url' from os.environ.get (line 235, credential/environment) → requests.post (network output)

Critical
Category
Data Flow
Content
except RuntimeError as e:
        return {"_error": str(e)}
    try:
        r = requests.post(url, json=body or {}, headers=headers, timeout=timeout)
        return r.json()
    except Exception as e:
        body_text = ""
Confidence
96% confidence
Finding
r = requests.post(url, json=body or {}, headers=headers, timeout=timeout)

Tainted flow: 'req' from os.environ.get (line 244, credential/environment) → urllib.request.urlopen (network output)

Critical
Category
Data Flow
Content
headers["Content-Type"] = "application/json"
        req = Request(url, method=method, data=body_bytes, headers=headers)
        try:
            with urlopen(req, timeout=30) as resp:
                return json.loads(resp.read().decode())
        except urllib.error.HTTPError as e:
            status = e.code
Confidence
95% confidence
Finding
with urlopen(req, timeout=30) as resp:

Lp3

Medium
Category
MCP Least Privilege
Confidence
85% confidence
Finding
The skill advertises capabilities that involve environment access, file writes, network calls, and shell execution, but does not declare permissions or equivalent boundaries. That weakens reviewability and consent, making it easier for a user or host agent to invoke operations with side effects or data access they did not clearly authorize.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding
A description-behavior mismatch is a serious trust and security problem: a skill presented as Shopee Ads forwarding reportedly also handles LinkFox login, SMS verification, API-key generation, package purchasing, order/payment flows, and QR-code rendering. Those unrelated account and payment capabilities greatly expand the attack surface and can enable credential handling, billing actions, and sensitive data processing outside the user's reasonable expectations.

Context-Inappropriate Capability

Medium
Confidence
94% confidence
Finding
The onboarding document directs operators to use a bundled registration/login/payment helper for Linkfox account setup, which is outside the core Shopee Ads proxy function. That expands the skill's privilege and data-handling scope to account creation, authentication, and billing workflows, increasing the chance of credential misuse, social engineering, or accidental collection of unnecessary sensitive data.

Description-Behavior Mismatch

Medium
Confidence
97% confidence
Finding
The helper persistently writes full API responses to local disk under predictable workspace/temp locations, even though the skill's stated purpose is just forwarding Shopee Ads API calls. Ads API responses can contain sensitive business data such as balances, campaign performance, merchant/shop identifiers, and potentially other account metadata, creating unnecessary local data exposure and retention risk.

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
This helper includes a generalized session logging and metadata indexing subsystem unrelated to the narrow purpose of an ads proxy wrapper. The extra filesystem capability broadens the skill's data collection surface and can silently accumulate sensitive operational records across sessions, increasing privacy and confidentiality risk if the host is shared or compromised.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
This file implements account onboarding, SMS login, API-key issuance, package ordering, and payment QR generation, which is materially unrelated to a Shopee Ads proxy skill. That mismatch is dangerous because it expands the skill into credential collection and commerce flows users would not expect from the declared capability, increasing phishing and unauthorized-account-action risk.

Description-Behavior Mismatch

High
Confidence
99% confidence
Finding
The dominant behavior of the script is LinkFox account provisioning and paid package commerce rather than Shopee Ads API forwarding promised by the manifest. In skill ecosystems, such capability mismatch is a strong indicator of deceptive packaging that can trick users or orchestrators into exposing credentials and performing unintended purchases.

Vague Triggers

Medium
Confidence
88% confidence
Finding
The trigger conditions are broad enough to activate on general discussion of advertising performance, authorization, or store promotion topics even when the user may only be asking conceptual questions. Over-broad invocation can cause unnecessary API calls, unintended access to store data, or side effects in an ads-management context where actions may affect live business settings or incur operational consequences.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
This documentation describes an operation that creates live Shopee product ads and explicitly encourages passing the full request body, but it does not warn users that the action can immediately change advertising configuration and incur real spend. In an agent setting, that omission increases the chance of accidental high-impact business actions, especially when users ask broadly about promotion, ROI, or ad management and may not realize the call is mutating rather than read-only.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The instructions tell the operator to collect a user's phone number and drive scripted registration/login without any privacy notice, consent language, retention policy, or verification that the number belongs to the requesting user. This creates risk of unauthorized account actions, mishandling of personal data, and leakage of SMS-based authentication information.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The document instructs users to persist API keys in shell profiles using commands that modify startup files, but does not warn about credential exposure to local users, shell history, backups, or accidental leakage through support screenshots and shared environments. Persisting secrets this way without context or safer alternatives can create long-lived credential compromise.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The code stores full API responses to disk and may also print them inline without any visible user-facing notice in this file. Even if network access is expected for the skill, undisclosed persistence and display of potentially sensitive ads/account data can leak information to local users, logs, or downstream tooling.

Missing User Warnings

Medium
Confidence
79% confidence
Finding
The script writes payment QR code PNG files into workspace/home/temp directories, which can persist sensitive payment artifacts on disk where other local processes or users may access them. In multi-tenant or shared agent environments, this can leak payment links and create privacy or financial abuse issues.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The login command emits the generated API key directly to stdout JSON, which is commonly captured by calling agents, logs, shells, notebooks, and audit systems. Exposing long-lived secrets through standard output materially increases the chance of accidental disclosure and subsequent account compromise.

Ssd 3

Medium
Confidence
95% confidence
Finding
The skill instructs the agent to always persist full API responses to session-linked files and sometimes print full JSON to stdout. Shopee Ads/account responses can contain sensitive commercial data, identifiers, authorization context, balances, campaign settings, and performance details, so unconditional storage and broad output materially increase the risk of accidental exposure through logs, workspace access, prompt context, or downstream tooling.

Ssd 3

Medium
Confidence
97% confidence
Finding
The result handler both persists full responses and may print them directly, which can leak sensitive Shopee Ads data into terminal histories, orchestration logs, CI output, or shared storage. Because this is a shared helper, the behavior affects all consuming entry scripts and amplifies the blast radius of any exposed response.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.