Back to skill

Security audit

Child Separation Anxiety Detection (Pre-School Crying) | 儿童分离焦虑识别(上学前哭闹)

Security checks for vulnerabilities and agentic risk

Overview

This cloud child-video analysis skill is purpose-related, but it silently creates or uses identities, persists tokens, and can retrieve sensitive child reports from the cloud.

Install only if you intentionally want child/family media and report queries sent to the configured cloud service, have appropriate guardian/school consent, and are comfortable with automatic identity creation plus locally persisted API tokens. Avoid passing custom open_id values, do not share the workspace data directory, and require clearer retention, authorization, and report-access controls before using it with real minors' footage.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (1)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
scripts/smyx_child_separation_anxiety_detection_analysis.py:45
Finding

Caller-Controlled Identity Enables Account Impersonation

Content
View full analysis

Vulnerability Details

File Location: scripts/smyx_child_separation_anxiety_detection_analysis.py:45-61; skills/smyx_common/scripts/util.py:552-612; skills/smyx_analysis/scripts/skill.py:145-151
Vulnerability Type: Authentication based on an unverified caller-supplied identity
Risk Level: High

Technical Analysis

The executable accepts a hidden --open-id argument and treats its value as the current authenticated identity without verifying that the caller owns that identity:

python
parser.add_argument("--open-id", required=False, help=argparse.SUPPRESS)
...
OpenIdUtil.resolve_current_open_id(args.open_id, use_current=bool(args.open_id))

The resolved identity is subsequently used by the shared request utility. When no cached tokens are available, the utility submits the supplied identity to a silent login and registration endpoint as both openId and mobile:

python
def _get_or_create_user(username):
    _url = ApiEnum.BASE_URL_HEALTH + "/sys/phoneLogin"
    open_id = username
    _data = {
        "silent": 1,
        "register": 1,
        "openId": open_id,
        "mobile": username,
        "source": ConstantEnum.DEFAULT__SKILL_HUB_NAME
    }
    try:
        _response = requests.post(_url, json=_data)
        if _response.status_code == 200:
            _response_json = _response.json()
            if _response_json and _response_json.get("success"):
                return _response_json and _response_json.get("result")
    except Exception as _e:
        CommonUtil.trace_exception_stack(_e)
    return {}

Tokens returned by that endpoint are persisted and then attached to subsequent cloud API requests:

python
current__user_name = ApiEnum.API_SECRET_KEY or ConstantEnum.CURRENT__USER_NAME or ConstantEnum.CURRENT__OPEN_ID
found_user = None
if (not ApiEnum.TOKEN or not ApiEnum.OPEN_TOKEN) and current__user_name:
    try:
        from .dao import UserDao, User
        user_dao = UserDao()
        found_user = us
...[truncated 3881 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove the public --open-id argument from the executable. Hiding an argument from help output does not make it trusted.
  2. Obtain user identity only from an authenticated integration channel controlled by the host platform.
  3. Require a cryptographically signed identity assertion with validated issuer, audience, subject, expiration, and nonce claims.
  4. Never treat a username, mobile number, open ID, environment value, or other bare identifier as proof of account ownership.
  5. Separate registration from authentication. Registration should require an explicit verification process, while login should require an established credential or trusted federated assertion.
  6. Disable silent registration during ordinary report and analysis requests.
  7. Enforce server-side authorization on report listing, result retrieval, report export, and analysis submission. Every record should be checked against the authenticated server-side subject rather than a client-provided identity field.
  8. Do not persist tokens returned from an unverified identity claim. Store valid tokens in a protected credential store with restrictive permissions, expiration handling, and revocation support.
  9. Avoid process-global mutable identity and token state. Pass an immutable authenticated principal through each request context to prevent identity confusion between operations.
  10. Add negative authorization tests proving that one user cannot select another identity, obtain tokens for it, list its reports, retrieve its results, or submit analyses under its account.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (56)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill appears to perform identity creation/resolution, token handling, remote account login/registration, and workspace discovery in addition to generic HTTP communication. Those are powerful account and environment access behaviors that are far beyond a narrowly described child-emotion analysis tool and are particularly dangerous when coupled with sensitive videos of minors.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill appears to perform identity creation/resolution, token handling, remote account login/registration, and workspace discovery in addition to generic HTTP communication. Those are powerful account and environment access behaviors that are far beyond a narrowly described child-emotion analysis tool and are particularly dangerous when coupled with sensitive videos of minors.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill appears to perform identity creation/resolution, token handling, remote account login/registration, and workspace discovery in addition to generic HTTP communication. Those are powerful account and environment access behaviors that are far beyond a narrowly described child-emotion analysis tool and are particularly dangerous when coupled with sensitive videos of minors.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill appears to perform identity creation/resolution, token handling, remote account login/registration, and workspace discovery in addition to generic HTTP communication. Those are powerful account and environment access behaviors that are far beyond a narrowly described child-emotion analysis tool and are particularly dangerous when coupled with sensitive videos of minors.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill appears to perform identity creation/resolution, token handling, remote account login/registration, and workspace discovery in addition to generic HTTP communication. Those are powerful account and environment access behaviors that are far beyond a narrowly described child-emotion analysis tool and are particularly dangerous when coupled with sensitive videos of minors.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill appears to perform identity creation/resolution, token handling, remote account login/registration, and workspace discovery in addition to generic HTTP communication. Those are powerful account and environment access behaviors that are far beyond a narrowly described child-emotion analysis tool and are particularly dangerous when coupled with sensitive videos of minors.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill appears to perform identity creation/resolution, token handling, remote account login/registration, and workspace discovery in addition to generic HTTP communication. Those are powerful account and environment access behaviors that are far beyond a narrowly described child-emotion analysis tool and are particularly dangerous when coupled with sensitive videos of minors.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill appears to perform identity creation/resolution, token handling, remote account login/registration, and workspace discovery in addition to generic HTTP communication. Those are powerful account and environment access behaviors that are far beyond a narrowly described child-emotion analysis tool and are particularly dangerous when coupled with sensitive videos of minors.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill appears to perform identity creation/resolution, token handling, remote account login/registration, and workspace discovery in addition to generic HTTP communication. Those are powerful account and environment access behaviors that are far beyond a narrowly described child-emotion analysis tool and are particularly dangerous when coupled with sensitive videos of minors.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill appears to perform identity creation/resolution, token handling, remote account login/registration, and workspace discovery in addition to generic HTTP communication. Those are powerful account and environment access behaviors that are far beyond a narrowly described child-emotion analysis tool and are particularly dangerous when coupled with sensitive videos of minors.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill appears to perform identity creation/resolution, token handling, remote account login/registration, and workspace discovery in addition to generic HTTP communication. Those are powerful account and environment access behaviors that are far beyond a narrowly described child-emotion analysis tool and are particularly dangerous when coupled with sensitive videos of minors.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill appears to perform identity creation/resolution, token handling, remote account login/registration, and workspace discovery in addition to generic HTTP communication. Those are powerful account and environment access behaviors that are far beyond a narrowly described child-emotion analysis tool and are particularly dangerous when coupled with sensitive videos of minors.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill involves uploading or querying highly sensitive video and report data about children, but the description does not explicitly warn that data may be transmitted to remote/cloud services for analysis and lookup. This undermines informed consent and materially increases privacy risk because users may not realize minor footage and linked reports leave the local environment.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The utility code provisions and persists user identities/open-id values, reads identity material from local workspace storage, and creates fallback accounts unrelated to the declared purpose of analyzing child separation-anxiety from video. This hidden identity-management behavior expands the skill's capabilities far beyond what users would expect, creating privacy, consent, and account-misuse risk—especially given the sensitive child-focused context.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The HTTP wrapper automatically injects identity fields, obtains or refreshes tokens, may auto-register/login users, and transmits data to external services. For a skill presented as local video-based child emotion analysis, undisclosed external communications and authentication flows are dangerous because they can exfiltrate sensitive metadata and enable backend actions under a user's identity without informed consent.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding

The skill declares operational behaviors that imply shell execution, filesystem access, environment usage, and network access, but it does not declare any explicit tool scope or permissions boundary. This creates a transparency and least-privilege failure: a host agent may grant broader capabilities than users or reviewers expect, increasing the chance of unauthorized file, network, or command use.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The history-report trigger phrases are broad enough that normal conversation may unintentionally invoke cloud report retrieval. In a system handling reports about minors, accidental activation can expose sensitive historical data or cause unnecessary remote queries without clear user intent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Line L17 returns a fixed Chinese-language heading ("儿童分离焦虑识别(上学前哭闹)结构化结果") with no indication that the user can choose another language or locale. The policy for all file types calls for flagging language or locale constraints when they are forced without user opt-in.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill’s stated purpose is single-video behavior analysis, but the CLI also exposes a history/listing function tied to an internal identity. That expands the data-access surface from processing provided input to retrieving prior analysis records, which can reveal sensitive child-behavior results unrelated to the current user action.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This code presents the tool description, argument help, status messages, and error output entirely in Chinese. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified or configurable, which is not present here.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The code resolves and uses an internal open_id even though the advertised function is local or URL-based video analysis. Introducing hidden identity binding for a child-emotion analysis tool creates unnecessary linkage between sensitive behavioral inferences and user identity, increasing privacy risk and enabling access to account-scoped records.

Content

No source excerpt is available for this finding.

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · skills/smyx_analysis/scripts/skill.py (reported line 28)May include surrounding context.

python
result_json = JsonUtil.parse(result_json_pure_text, result_json_pure_text)

        result_json_common_ai_response = result_json.get("commonAiResponse") if isinstance(result_json,
                                                                                           dict) else result_json
        if result_json_common_ai_response:
            result_json = result_json_common_ai_response

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · skills/smyx_analysis/scripts/skill.py (reported line 33)May include surrounding context.

python
result_json = JsonUtil.parse(result_json_pure_text, result_json_pure_text)

        result_json_common_ai_response = result_json.get("commonAiResponse") if isinstance(result_json,
                                                                                           dict) else result_json
        if result_json_common_ai_response:
            result_json = result_json_common_ai_response

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

Multiple returned strings are fixed in Chinese, such as the analysis report header and export-link text, with no visible mechanism for locale selection or user opt-in. This creates a language policy issue because the skill imposes a specific language on all users regardless of preference.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The output includes a report export URL and the class also exposes report-listing behavior beyond the manifest's stated analysis-only purpose. Undeclared data access features increase the chance of unauthorized report discovery or sharing, especially if report IDs or exported links are accessible outside the original analysis flow.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.install_untrusted_source

Install source points to URL shortener or raw IP.

Warn
Code
suspicious.install_untrusted_source
Location
skills/smyx_common/scripts/config-dev.yaml:2