Back to skill

Security audit

mailprocess

Security checks for vulnerabilities and agentic risk

Overview

The skill is meant to automate Mali app-building requests, but it can submit user prompts through an authenticated browser without confirmation and contains unsafe AppleScript/JavaScript injection paths.

Install only if you intentionally want this skill to open and control Chrome, use your logged-in Mali session, and submit requirements to the platform. Avoid putting secrets, credentials, personal data, or sensitive internal plans in prompts until the launchers add a confirmation step, safe data serialization, stricter URL/button validation, and narrower trigger phrases.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (3)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/launch-mali-builder.py:46
Finding

AppleScript and JavaScript Injection Through Unsafely Interpolated User Requirements in the Python Launcher

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/launch-mali-builder.sh:37
Finding

AppleScript and JavaScript Injection Through Unsafely Interpolated User Requirements in the Bash Launcher

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/launch-mali-builder.py:104
Finding

Automatic Clicking of Unverified Browser Controls

Content
View full analysis
0) {{ const lastBtn = allButtons[allButtons.length - 1]; lastBtn.click(); return 'clicked last button'; }} return 'button not found'; }})(); " ``` Bash launcher: ```bash set jsCode3 to " (function() { // 尝试多种选择器查找发送按钮 const selectors = [ 'button[type=\"submit\"]', 'button.send-btn', 'button.submit-btn', 'button:has(svg)', 'button[aria-label*=\"发送\"]', 'button[title*=\"发送\"]' ]; for (let selector of selectors) { const btn = document.querySelector(selector); if (btn) { btn.click(); return 'clicked: ' + selector; } } // 如果找不到,尝试查找最后一个按钮 const allButtons = document.querySelectorAll('button'); if (allButtons.length > 0) { const lastBtn = allButtons[allButtons.length - 1]; ...[truncated 2251 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (15)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The declared purpose describes an end-user automation skill that interacts with the Mali low-code platform via Chrome to build applications from user requirements. However, the supplied code chunk does not perform browser automation or application building at all. Its primary function is deployment/installation: validating files, interacting with ducc-cli, generating a skill configuration, and packaging files for upload. This is a materially different purpose from the declared behavior, so it should be flagged as a mismatch.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README explicitly states that the skill will automatically open Chrome, navigate to an internal site, fill the user's request, and click send, but it does not provide a clear warning that these are externally visible side effects. This is dangerous because the skill can transmit sensitive prompts or trigger actions on a live internal platform immediately after activation, especially when combined with broad trigger terms.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The documented trigger list includes broad phrases such as '创建应用' and '管理系统' that can match ordinary user requests and cause the skill to activate unexpectedly. In this skill's context, unintended activation is more dangerous because activation leads to external browser navigation, automatic form filling, and submission behavior, which can cause side effects without clear user intent.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill includes concrete shell and browser/network automation behaviors but declares no explicit tool scope or permissions boundary. This is dangerous because an agent may execute browser-launching or command-opening actions without clear policy constraints, increasing the chance of unintended command execution or data submission.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger phrases are broad enough to match generic requests like building apps, dashboards, forms, or management systems, which can cause the skill to activate when the user did not specifically intend browser automation and submission to Mali. In this context, unintended invocation is risky because the skill can immediately open Chrome and transmit user-provided content to an internal platform.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill describes automatically filling a website form with user content and triggering submission, but does not require an explicit warning or confirmation before sending data. This is dangerous because prompts may contain confidential internal requirements, credentials, personal data, or regulated information that would be exfiltrated to a browser session or remote service with a single automatic action.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The activation condition says the skill should trigger when a request is 'suitable' for low-code implementation, which is subjective and leaves too much room for autonomous interpretation. Because the skill performs external browser automation and form submission, ambiguous activation increases the risk of sending sensitive business requirements or personal data without sufficiently explicit user consent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The script's user-facing title, prompts, status messages, and installation instructions are presented in Chinese throughout, beginning with the header comments and continuing across the interactive flow. For a general installation utility, this imposes a specific language/locale on users without opt-in or justification, which matches the language-policy violation criteria.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The script automatically opens an internal low-code platform, injects the user-provided requirement into the page, and clicks the submit button without explicit confirmation. This can unintentionally transmit sensitive business data, credentials, internal project details, or regulated information to an external or semi-external service, especially because the skill is designed to trigger automation from natural-language requests.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · scripts/launch-mali-builder.py (reported line 149)May include surrounding context.

python
'''
    
    try:
        subprocess.run(['osascript', '-e', applescript], check=True)
        print_colored("✅ Chrome 已启动,需求已自动填充!", Colors.GREEN)
        return True
    except subprocess.CalledProcessError as e:

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

Most comments, status messages, usage text, and examples are presented only in Chinese, which effectively forces a specific language for interaction. The file does not provide an opt-in language choice or state that the skill is intentionally limited to a Chinese-speaking or region-specific audience.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

On macOS, the script automatically opens a browser, injects the full user-supplied requirement into the target site, and clicks a submit button without any explicit confirmation step. This can cause unintended disclosure of sensitive internal data or accidental submission to the wrong UI element if the page structure changes, especially because the selector logic falls back to clicking the last button on the page.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

The README presents all user-facing instructions and examples in Chinese, which effectively imposes a single language on users without stating that the skill is Chinese-only or region-specific. Under the stated policy, forcing a language without user opt-in can be a natural-language policy issue.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

The manifest description and examples are entirely in Chinese and the skill is framed around Chinese trigger phrases without indicating that users may interact in another language. This can amount to a language policy issue when no opt-in or alternative locale behavior is documented.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The docstring, usage text, and runtime messages are all presented in Chinese, with no indication that users can select another language or that the skill is intentionally limited to a Chinese-speaking audience. This can violate language or locale policy when skills are expected to avoid forcing a specific language without user opt-in.

Content

No source excerpt is available for this finding.