Back to skill

Security audit

出海痛点雷达 Overseas Pain Points

Security checks for vulnerabilities and agentic risk

Overview

The scanners classify this skill as benign because its reported report-generation workflow is purpose-aligned, while noting optional weekly reruns and incomplete reference coverage.

Before installing, consider whether you need weekly reruns and check their schedule, API usage, and cancellation details with the service. The scan was partial: a local reference was missing, so the evidence does not cover everything the skill may rely on.

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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • 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
Findings (4)

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

Critical
Category
Data Flow
Confidence
90% confidence
Finding

Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.

Content

Scanner excerpt · scripts/radar.py (reported line 78)May include surrounding context.

python
if data is not None:
        req.add_header("Content-Type", "application/json")
    try:
        with urllib.request.urlopen(req, timeout=timeout, context=_SSL["context"]) as resp:
            status, raw = resp.status, resp.read()
    except urllib.error.HTTPError as err:
        status, raw = err.code, err.read()

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The main API-client workflow is consistent with the declared report-generation purpose. However, requesting recurring weekly execution materially extends the described on-demand analysis and may cause continuing API usage. This option is explicitly user-selected, not enabled by default. The supplied code delegates searching, video analysis, quotation verification, and counting to the service, so their implementation cannot be verified from this chunk alone.

Content

No source excerpt is available for this finding.

Skill declares no tool scope ('permissions' or 'allowed-tools') but code capabilities were detected: env, network.

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

The client can request recurring weekly analyses, although the manifest describes only a one-time product investigation.

Medium
Category
Excessive Agency
Confidence
94% confidence
Finding

The --weekly option is documented as automatically rerunning the analysis each week, and the request body forwards weekly: true to the service. This introduces persistent, potentially credit-consuming automation beyond the manifest's described per-request research workflow; it is not necessary to produce the requested report.

Content

No source excerpt is available for this finding.