Back to skill

Security audit

Harmonyos Flyverify Integretion

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent FlyVerify integration guide, but it under-discloses the risk of collecting and persisting an app secret in project files.

Review before installing. Use this skill only on a project where you are comfortable changing HarmonyOS config, dependencies, permissions, and login code. Do not commit the generated FlyVerify_HarmonyOS_Config.xlsx if it contains appSecret; keep it local, exclude it from version control, delete it after use, and rotate any secret that was shared or committed. Pin and review SDK package versions where possible.

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

Warning
Location
SKILL.md:160
Finding
Plaintext Collection and Client-Side Embedding of an Application Secret## Vulnerability Details **File Location**: `SKILL.md:160-189`, with the client-side initialization instruction at `SKILL.md:287` **Vulnerability Type**: Plaintext sensitive-data storage and insecure secret handling **Risk Level**: Medium ### Vulnerable Code and Instructions The workflow requires the configuration workbook to be copied into the project root: ```text Generate assets/FlyVerify_HarmonyOS_Config_Template.xlsx Copy it to the user's project root as FlyVerify_HarmonyOS_Config.xlsx ``` It then requires the application secret to be entered and read from that workbook: ```text appKey: required and must not be empty appSecret: required and must not be empty appKey and appSecret are always processed as strings. ``` The integration instructions subsequently show the secret being supplied directly to client initialization code: ```ts ZztSDK.init(context, "YourAppKey", "YourAppSecret") ``` ### Technical Analysis The prescribed workflow stores `appSecret` in a plaintext XLSX file placed in the root of the user's application project. Project-root files are commonly committed to source control, copied into project archives, synchronized through developer backup services, or shared during troubleshooting. The Skill does not require the generated workbook to be deleted after use, excluded through `.gitignore`, protected with restrictive filesystem permissions, or checked by secret-scanning controls. It also directs the Agent to insert the value into client application code. Values embedded in a distributed client application generally cannot be considered confidential because source repositories, compiled packages, runtime memory, and application resources may be inspected. ### Attack Path 1. A developer follows the Skill and generates `FlyVerify_HarmonyOS_Config.xlsx` in the application project root. 2. The developer enters the MobTech `appSecret` into the workbook. 3. The workbook is accidentally co ...[truncated 984 chars]
Remediation
## Remediation Suggestions 1. Confirm with the SDK vendor whether `appSecret` is genuinely required in the client application. If it is not, move all secret-dependent operations to a trusted backend. 2. Do not request or store `appSecret` in the generated Excel workbook. 3. Use a non-secret application identifier in client code and perform sensitive authentication or token exchange on a backend service. 4. If local configuration is unavoidable, store it in a dedicated local-only file that is excluded from version control and packaging. 5. Add explicit `.gitignore` entries for `FlyVerify_HarmonyOS_Config.xlsx` and any generated credential-bearing configuration files. 6. Require deletion of the workbook immediately after validated configuration has been transferred. 7. Add repository and CI secret scanning to detect accidental credential commits. 8. Prevent secrets from appearing in generated documentation, command output, logs, screenshots, or Agent responses. 9. Rotate any credential that has already been committed, shared, or embedded in a distributed build. 10. Clearly document that any value embedded in a client application must be treated as recoverable by end users and attackers.

T08 · Insecure Dependencies

Warning
Location
SKILL.md:229
Finding
Unpinned Third-Party Dependency Installation## Vulnerability Details **File Location**: `SKILL.md:229-230` **Vulnerability Type**: Mutable and unverified third-party dependency installation **Risk Level**: Medium ### Vulnerable Code ```bash ohpm install @zztsdk/zztcore ohpm install @zztsdk/flyverify ``` ### Technical Analysis The installation commands do not specify exact package versions. Consequently, the resolved package contents may change between executions as new versions are published. The instructions also do not require verification of package provenance, lockfile integrity, package checksums, the selected registry, or the contents of the resolved dependency graph. This creates a supply-chain risk: a compromised publisher account, registry compromise, malicious future release, or unexpected dependency update could introduce code that was not present when the Skill was audited. Requiring user confirmation before running the commands reduces accidental execution but does not ensure that the downloaded package version is trustworthy or reproducible. ### Attack Path 1. An attacker compromises the package publisher, registry, or a transitive dependency used by one of the named packages. 2. The attacker publishes a malicious or compromised package version under the expected package name. 3. A developer follows the Skill and runs the unpinned installation commands. 4. OHPM resolves the mutable current version rather than a previously reviewed exact version. 5. The compromised package enters the project and is incorporated into development or application builds. 6. Malicious package logic executes when invoked by the application or, where supported by the package tooling, during installation or build processing. ### Impact Assessment The direct scope includes the HarmonyOS project, its dependency graph, generated application builds, and application runtime. Malicious SDK code incorporated into the application could operate with the application's granted pe ...[truncated 399 chars]
Remediation
## Remediation Suggestions 1. Replace mutable installation commands with exact, vendor-confirmed versions, for example: ```bash ohpm install @zztsdk/zztcore@EXACT_REVIEWED_VERSION ohpm install @zztsdk/flyverify@EXACT_REVIEWED_VERSION ``` 2. Record the approved versions in the Skill and update them only through a documented security review. 3. Commit and enforce the OHPM lockfile so local and CI installations resolve identical dependency versions. 4. Use the expected trusted registry explicitly and reject unexpected registry overrides. 5. Review package ownership, release provenance, signatures or checksums where available, and the complete transitive dependency graph. 6. Inspect package lifecycle and build behavior before allowing installation in developer or CI environments. 7. Run dependency installation with the minimum necessary privileges and avoid privileged system accounts. 8. Use an isolated CI runner or development container for initial package evaluation. 9. Add dependency vulnerability and integrity scanning to CI. 10. Require explicit review before lockfile changes or dependency upgrades are merged.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding
The declared description presents the skill as an interactive guide for assisting users with FlyVerify integration steps inside HarmonyOS NEXT projects. The supplied code does not perform interactive guidance, inspect or modify HarmonyOS project files, troubleshoot runtime issues, or help execute integration actions in conversation. Instead, it creates a formatted Excel template summarizing configuration inputs and reference information, then writes that workbook to disk. While the spreadsheet content is related to FlyVerify HarmonyOS integration, the primary behavior is document/template generation, which is a materially different capability from the declared interactive guide.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The README explicitly states that the skill can modify project files and insert SDK calls, but it does not clearly warn users up front that running the skill may change source code, configuration, and app behavior. In an agent setting, this can lead to unintended file modifications or consent bypass if the agent acts on these instructions without obtaining explicit user approval before each change.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The README includes package installation commands for external dependencies but does not warn that these actions can modify the dependency graph, access the network, and introduce third-party code into the project. In an automated agent workflow, this increases the risk of silent supply-chain or environment changes without clear user consent.

Static analysis

No suspicious patterns detected.