Back to skill

Security audit

Byted Ai Mobileuse Agent

Security checks for vulnerabilities and agentic risk

Overview

This skill is a legitimate cloud-phone automation wrapper, but it gives broad mobile-control and credentialed network authority with insufficient scoping and disclosure around endpoint redirects, raw outputs, and screen recording.

Install only if you trust the runtime environment and provider endpoints. Keep `ARK_SKILL_API_BASE` and `VOLC_HOST` unset unless you intentionally use a trusted proxy, avoid putting long-lived secrets in prompts or logs, use least-privilege/rotated credentials, enable screen recording only when necessary, and pin reviewed dependency versions for production use.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/sdk_client.py:31
Finding

Unrestricted API endpoint overrides can disclose credentials and sensitive task data

Content
View full analysis
Tuple[Optional[str], Optional[str]]: return _env("ARK_SKILL_API_BASE"), _env("ARK_SKILL_API_KEY") ``` `scripts/sdk_client.py:86-89` ```python configuration = volcenginesdkcore.Configuration() host = os.environ.get("VOLC_HOST") if host: configuration.host = host ``` `scripts/sdk_client.py:118-126` ```python api_base, api_key = read_env_ark_proxy() if api_base and api_key: return self._call_via_ark_proxy( method=method, action=action, body=body, api_base=api_base, api_key=api_key, ) ``` `scripts/sdk_client.py:147-187` ```python def _call_via_ark_proxy( self, *, method: str, action: str, body: Dict[str, Any], api_base: str, api_key: str, ) -> Dict[str, Any]: url = f"{api_base.rstrip('/')}/?Action={urllib.parse.quote(action)}&Version={urllib.parse.quote(self.version)}" headers = { "ServiceName": self.service, "Authorization": f"Bearer {api_key}", "Accept": "application/json", } resolved_method = (method or "POST").upper() if resolved_method == "GET": if body: query = urllib.parse.urlencode(body, doseq=True) url = f"{url}&{query}" data = None else: headers["Content-Type"] = "application/json" data = json.dumps(body or {}, ensure_ascii=False).encode("utf-8") req = urllib.request.Request( url, data=data, headers=headers, method=resolved_method ) try: with urllib.request.urlopen(req, timeout=30) as resp: resp_body = resp.read() try: parsed = json.loads(resp_body.d ...[truncated 4339 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
references/requirements.txt:1
Finding

Unpinned third-party dependency creates non-reproducible and unsafe installations

Content
View full analysis
Remediation
View remediation
``` 2. Generate and enforce cryptographic hashes: ```bash pip install --require-hashes -r references/requirements.txt ``` 3. Lock all transitive dependencies rather than only the direct package. 4. Generate the lock file in a controlled build environment and review dependency changes before updates. 5. Use a trusted package index or an internally controlled package mirror. 6. Enable package provenance, signature, and software composition analysis where available. 7. Regularly scan the pinned dependency set for known vulnerabilities. 8. Test upgrades separately and update pins only after security and compatibility review. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (12)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill explicitly says to 'Use this Skill by default for mobile/phone automation requests,' which is overly broad routing guidance for a capability that can launch apps, navigate UI, fill forms, and trigger cloud-backed device actions. This can cause the agent to invoke the skill for generic requests without clear user intent validation, increasing the chance of unintended actions on a device, sensitive data exposure through UI interaction, or misuse of privileged mobile automation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill streams progress as JSONL and may return raw payloads such as 'raw_response,' 'current_step_raw,' and 'agent_result_raw,' while also supporting optional screen recording, but it does not present a clear privacy warning or consent requirement. In this context, mobile automation can expose app content, credentials, personal messages, session tokens, or other sensitive on-screen data to logs, downstream consumers, or storage backends.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The guide explicitly instructs users to create and record AccessKey ID and SecretAccessKey for later use, but provides no handling requirements such as secure storage, least-privilege scoping, rotation, or prohibitions on sharing. In an agent-skill context, this is dangerous because it normalizes collecting long-lived cloud credentials during setup and may lead operators to place secrets into notes, skill files, object storage paths, or agent-accessible context, enabling account compromise if exposed.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The documentation describes an agent that can perform end-to-end actions on a cloud phone, including launching apps, navigating UI, and filling forms, but does not warn users that these actions may affect real accounts, modify data, submit transactions, or trigger other unintended operations. Because this is a mobile automation skill operating through visual understanding, users may underestimate the scope of control and grant it prompts or environments that expose sensitive data or cause harmful actions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill documentation instructs users to pass access credentials via command-line arguments without warning that such secrets may be exposed through shell history, process listings, logs, CI output, or shared terminal environments. This creates a direct credential-handling weakness that can lead to unauthorized access to the associated cloud resources if the AK/SK are observed or retained.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

This code file allows enabling screen recording and specifying TOS storage parameters, which can capture and transmit potentially sensitive user or system data. While the argparse help mentions the flags, there is no confirmation prompt or explicit user-facing warning at execution time before the recording/upload-related request fields are sent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This code reads API credentials from environment variables and performs outbound HTTP/API requests, including sending a bearer token in the Authorization header. There is no user-facing warning, confirmation prompt, or explanatory logging in this file to disclose that network transmission using credentials will occur.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The document instructs users to upload skill files and application packages to object storage and the platform, but does not require security review of those artifacts for embedded secrets, unsafe code, malicious payloads, or production-readiness. Because this skill governs agent tooling deployment, unreviewed uploads can introduce credential leakage, unsafe automation behavior, or malicious code into the execution environment.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
96% confidence
Finding

The dependency is specified without a version pin, so future installs may pull in newer releases with breaking changes or newly introduced malicious/compromised code. This weakens build reproducibility and increases supply-chain risk because the resolved package version can change over time without review.

Content

Scanner excerpt · references/requirements.txt (reported line 1)May include surrounding context.

text
volcengine-python-sdk

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

This code reads authentication material from the environment via read_env_aksk() and then performs a remote API call through UniversalClient.call(). Although these actions are part of the script's function, the file provides no docstring, comment, or user-facing notice explaining that credentials will be consumed and data will be transmitted to an external service.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The raised RuntimeError messages and related user-visible text are written only in Chinese, which forces a specific language on users without opt-in or locale selection. This is a natural-language policy concern because the file provides no mechanism to choose or document the enforced language.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The HTTP and network error messages returned to users are hardcoded in Chinese only. Because no language selection or documented locale constraint is present, this unnecessarily forces a specific language.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
scripts/sdk_client.py:60