Back to skill

Security audit

Mobile Phone Number Undeliverable or Empty Detection - 手机空号检测

Security checks for vulnerabilities and agentic risk

Overview

This skill coherently checks phone-number status through a disclosed JisuAPI integration, but users should treat submitted numbers as personal data sent to a third party.

Install only if you are comfortable sending the checked phone numbers to JisuAPI under your own API key. Confirm you have permission to process those numbers, avoid unnecessary bulk checks, and review the provider's privacy and retention terms before using it with customer or regulated data.

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
  • 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
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (8)

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding

Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The documentation states that phone numbers are checked through a third-party API, but it does not prominently warn that user phone numbers will be transmitted outside the local system. Phone numbers are personal data, so undisclosed external sharing creates privacy, compliance, and trust risks, especially in bulk processing scenarios.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill appears to require both environment access and outbound network access to send phone numbers to JisuAPI, but it does not declare an explicit tool scope such as permissions or allowed-tools. That mismatch weakens least-privilege controls and can cause the platform or reviewer to underestimate what the skill is able to do.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The activation guidance is broad enough that the skill may be invoked whenever a user asks about checking phone-number status, without a clear requirement to confirm consent for external submission. Because the skill handles sensitive personal data, ambiguous triggering increases the chance of unintended transmission to a third-party service.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

The skill is explicitly designed to send user-supplied phone numbers to an external service, which is a genuine external data transmission risk because it shares personal data outside the local trust boundary. The fixed HTTPS endpoint reduces some technical risk, but the privacy/security impact remains meaningful due to third-party processing of phone numbers.

Content

Scanner excerpt · mobileempty.py (reported line 14)May include surrounding context.

python
import requests


API_URL = "https://api.jisuapi.com/mobileempty/query"


def query_mobileempty(appkey: str, req: dict):

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill transmits phone numbers to an external API without any in-skill disclosure, consent prompt, or privacy notice. Phone numbers are personal data, so silent transmission to a third party can create privacy, compliance, and trust risks, especially in batch mode where many numbers may be exposed at once.

Content

No source excerpt is available for this finding.

Tainted flow: 'data' from requests.post (line 48, network input) → requests.post (network output)

Medium
Category
Data Flow
Confidence
65% confidence
Finding

Data from a source is assigned to a variable that is later passed to a sink, creating a variable-mediated taint flow.

Content

Scanner excerpt · mobileempty.py (reported line 36)May include surrounding context.

python
}

    try:
        resp = requests.post(API_URL, data=data, timeout=15)
    except Exception as e:
        return {"error": "request_failed", "message": str(e)}

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The natural-language documentation includes Chinese descriptions for the API purpose and request semantics, which can impose a locale/language expectation without user opt-in. The file does not indicate that alternative language support is available or that the locale is intentionally constrained.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.