Back to skill

Security audit

Byted Acep Api

Security checks for vulnerabilities and agentic risk

Overview

This skill is a legitimate cloud-phone administration tool, but it exposes broad destructive and privileged controls that need careful review before installation.

Install only if you intend to give the agent administrator-level control over authorized Volcengine cloud-phone resources. Use tightly scoped Volcengine credentials, require explicit user approval for state-changing actions, avoid root command execution unless necessary, review generic action-call usage carefully, and treat file transfers and pre-signed edge URLs as sensitive.

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 (1)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/core/vephone_client.py:544
Finding

Unvalidated Pre-Signed Edge URL Permits Plaintext or Untrusted Data Transmission

Content
View full analysis
str: preferred_keys = { "presignededgeurl", "presignedurl", "edgeurl", "url", } def walk(node: Any) -> Optional[str]: if isinstance(node, dict): for key, value in node.items(): if ( key.lower() in preferred_keys and isinstance(value, str) and value.startswith(("http://", "https://")) ): return value for value in node.values(): found = walk(value) if found: return found elif isinstance(node, list): for value in node: found = walk(value) if found: return found return None url = walk(payload) if not url: raise ValueError("GetPreSignedEdgeURL response missing pre-signed URL") return url ``` The extracted scheme and authority are then used directly: ```python def _edge_request( self, method: str, url: str, headers: Optional[Dict[str, str]] = None, body: Optional[bytes] = None, timeout: int = 30, ) -> Dict[str, Any]: parsed = urllib.parse.urlsplit(url) base_url = f"{parsed.scheme}://{parsed.netloc}" path = parsed.path or "/" query_pairs = urllib.parse.parse_qsl(parsed.query, keep_blank_values=True) query_params = {key: value for key, value in query_pairs} status, payload, ...[truncated 4153 chars]
Remediation
View remediation
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • 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
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (52)

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill exposes arbitrary command execution on remote cloud phone instances via both async and sync commands, and explicitly allows elevated execution with permission_type/PermissionType set to root. In an agent skill context, this is a powerful remote-action primitive that can alter system state, access sensitive data on the instance, or be abused for destructive actions if invoked by an untrusted workflow or user.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

This command deletes user data based on caller-supplied file paths and packages without any built-in confirmation or guardrail in the CLI wrapper. Because the skill is explicitly for managing and operating cloud phone instances, accidental invocation here could directly erase application data or files on authorized instances, making the operational impact significant.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill exposes powerful local and remote capabilities through a Python CLI that can read local config files, transfer files, invoke networked OpenAPI actions, and perform destructive operations on cloud phone instances, but it does not declare any explicit tool scope or permission boundaries. In an agent setting, that omission increases the chance of overbroad execution and unintended access to secrets, files, or remote resources because the caller has no machine-readable allowlist constraining what the skill may use.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The example command sets locale_language to zh-CN, which is a language/locale constraint expressed in natural language-adjacent documentation. The file does not present this as an optional user choice or justify it as a region-specific requirement, so it violates the locale policy criteria.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The delete-app command performs an application deletion via delete_app() but the function contains no confirmation prompt, warning message, or explanatory comment/docstring disclosing that it will remove an app. In this code file, that leaves a destructive operation without visible user disclosure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The delete-app-version command calls delete_app_version() to remove an application version, but there is no confirmation prompt, warning output, or descriptive comment indicating the irreversible action. This is a safety-relevant deletion operation with no visible disclosure in the file.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file's natural-language strings are written in Chinese, including the module description and later user-facing error messages, with no indication of language choice or opt-in. This can violate language/locale policy when a skill implicitly forces a specific language for all users.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This printed error message is user-facing natural language and is hardcoded in Chinese, with no fallback or locale selection mechanism. The skill therefore enforces a specific language rather than offering user choice or documenting a justified regional limitation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Several SystemExit and argument error messages in this range are user-visible and written only in Chinese. Because the file provides no mechanism for language selection or opt-in, it imposes a single locale on all users.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The manifest emphasizes management tasks such as querying instances/resources, troubleshooting, screenshots, command execution, and operating authorized cloud phone instances. This module adds administrative resource lifecycle actions for display layout definitions (create_display_layout and delete_display_layout), which are not clearly covered by the stated description and go beyond the predominantly query/inspection-oriented wording.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This code performs an arbitrary API action based on user-supplied input via request_action(...), and the examples include state-changing operations such as SetProxy and CreatePod. There is no confirmation prompt, cautionary log, or inline warning in this file indicating that the command may modify remote resources or trigger irreversible changes.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This Python file contains user-facing natural-language strings entirely in Chinese, starting with the module docstring, and the CLI help text throughout the file follows the same pattern. The file does not indicate that the skill is region-specific or provide any user opt-in for language selection, which creates a language/locale policy concern.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The code invokes reboot_host and reset_host directly and only prints the API result after execution. There is no confirmation prompt, pre-action warning, or inline comment/docstring warning that these commands can disrupt running workloads, and this file provides no visible disclosure beyond terse command names.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The manifest emphasizes managing and troubleshooting cloud phone resources with examples centered on querying instances/resources, screenshots, commands, task viewing, and inspection of capacity, tags, DNS, and routing. This file additionally implements image deletion, update, and image creation/build workflows, which materially extend into image lifecycle modification rather than the described resource-query/troubleshooting scope.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The delete command directly invokes delete_aosp_image on the provided image IDs without any confirmation prompt, warning message, or explanatory comment about the destructive effect. Although the parser help says '删除 AOSP 镜像', the code itself provides no user disclosure or safeguard before performing an irreversible deletion.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The push-file command allows arbitrary local content to be uploaded to a remote cloud phone path chosen by the caller, with optional overwrite behavior. This can be abused to place executables, scripts, modified configs, or test artifacts onto instances, enabling tampering or staging for later command execution.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The async remote command feature exposes execution of arbitrary commands, including optional root privileges, without any explicit warning in the CLI UX that the operation is privileged and system-affecting. In an agent-driven environment, lack of friction or disclosure increases the chance of unsafe invocation and hides the risk profile of the action from operators.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The synchronous command path has the same unsafe exposure as the async one: it accepts arbitrary command strings and supports root-level execution, but provides no explicit warning to the user about the destructive or privileged nature of the action. Because sync execution also returns command output directly, it may be used interactively to probe system state or extract sensitive data from the instance.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The pull-logcat command creates parent directories and writes the retrieved log data to a local path, which is a file write involving potentially sensitive device logs. While the code exposes an --output argument, there is no confirmation prompt, warning-oriented help text, or comment/docstring disclosing that logs containing sensitive information will be saved locally.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The cmd_remove_phone_template function performs a delete operation via remove_phone_template and immediately prints the result, but this file provides no confirmation prompt, warning message, or explanatory comment/docstring about the destructive action. Because deleting a template can affect configuration state, users are not explicitly warned at the point of execution.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The CLI exposes deletion of cloud phone instances, including an optional force-destroy path, without any interactive confirmation, dry-run, or explicit safety gate in this file. In an operational tooling context, this raises the risk of accidental or scripted destructive actions that can permanently remove instances or service state.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
77% confidence
Finding

Resetting an instance is a potentially disruptive or destructive action, yet the command wrapper provides no warning, confirmation, or indication of impact. In a cloud resource management skill, this can lead to unintended outages, data loss, or disruption of active testing sessions through operator error or automation mistakes.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

Deleting backup data is irreversible and can remove recovery points, but the CLI wrapper performs the action with no confirmation or warning. In this environment, loss of backups weakens recovery capability and can amplify the impact of other mistakes or incidents.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This command performs a destructive resource-unsubscribe action and even exposes a --force option, but the code shown provides no explicit confirmation prompt, dry-run mode, or prominent warning before execution. In an operations CLI managing cloud phone resources, accidental invocation, malformed host lists, or automation mistakes could trigger unintended service/resource deletion and billing or availability impact.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The delete-tag handler invokes a deletion operation against the client API, which is a destructive action. In this file there is no confirmation prompt, user-facing warning, or explanatory comment/docstring disclosing that the command will delete tags before the operation is executed.

Content

No source excerpt is available for this finding.