Back to skill

Security audit

m5stack-uiflow2-coder

Security checks across malware telemetry and agentic risk

Overview

This appears to be a legitimate UIFlow2 coding helper, but its bundled examples include sensitive hardware, biometric, location, audio, and network behaviors without enough safety or privacy guidance.

Install only if you are comfortable reviewing generated hardware code before running it. Do not copy examples involving biometrics, microphones, location, USB keyboard/mouse mode, motors, relays, QR scanning, or network credentials into production without adding explicit user consent, visible indicators, safety interlocks, secure storage, credential replacement, and encrypted transport where supported.

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

Lp3

Medium
Category
MCP Least Privilege
Confidence
80% confidence
Finding
The skill explicitly instructs the agent to help with Wi‑Fi, HTTP/HTTPS, and other networked UIFlow2 code, but no permissions metadata is declared to reflect that capability. This can undermine least-privilege review and cause downstream systems or users to underestimate that the skill may guide network-capable behavior.

Intent-Code Divergence

Medium
Confidence
95% confidence
Finding
The M5Arc documentation’s primary example creates and handles an M5Switch instead of an arc widget, which is a real documentation integrity flaw. In a coding-assistant skill, users may copy this example expecting arc behavior and produce incorrect UI logic, wasting debugging time and potentially causing downstream unsafe assumptions about event handling and widget APIs.

Intent-Code Divergence

Low
Confidence
89% confidence
Finding
The set_arc_color example calls label_0.set_arc_color(...), which contradicts the documented M5Arc API and can mislead users into applying methods to the wrong widget type. While not directly enabling code execution or privilege escalation, it degrades trustworthiness of the skill and can cause faulty generated code in an assistant that relies on bundled docs.

Intent-Code Divergence

Low
Confidence
88% confidence
Finding
The set_flag example uses button_0.set_flag(...) instead of an M5Arc instance, making the documentation internally inconsistent. In this skill context, inaccurate examples are more dangerous because an agent may treat bundled docs as authoritative and propagate incorrect code to users.

Context-Inappropriate Capability

Medium
Confidence
78% confidence
Finding
The example explicitly demonstrates exporting and importing fingerprint templates to persistent storage, enabling biometric template replication across devices. In a coding-assistant skill, this is a sensitive biometric data handling capability, and the documentation provides no safeguards around consent, secure storage, access control, retention, or encryption, which creates a real privacy and misuse risk.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The instruction '默认用中文回答' forces a default response language without checking the user's preference. This can reduce transparency and user control, and in some environments may cause misunderstandings of safety-critical setup or hardware instructions.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The code automatically resolves approximate location via a third-party IP geolocation service and then sends latitude/longitude to a weather API, but it does not provide a clear user-facing disclosure or consent flow before transmitting that device-derived location data. Although the transmission uses HTTPS and appears functionally necessary for the weather feature, location data is sensitive and the automatic sharing increases privacy risk, especially in an embedded/UI example that may be reused unchanged.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The documentation includes example code that enrolls, recognizes, and deletes face identifiers, which are biometric data, but it provides no warning about consent, retention, access control, or local storage behavior. In a coding assistant skill, users may copy this example directly into products or demos, leading to privacy-noncompliant biometric collection and misuse without understanding the legal and security implications.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The documentation shows code that turns the device into a USB HID keyboard and forwards CardKB keystrokes to the connected host, but it does not clearly warn that all typed input will be injected into whatever computer or terminal is attached. In a coding-assistant skill context, users may copy and run the example directly, creating unintended host input, command execution, or data entry into sensitive applications.

Missing User Warnings

Medium
Confidence
86% confidence
Finding
The documentation provides ready-to-use code that enumerates the device as a USB HID mouse and can move the host cursor and generate clicks, including right-click events, without any explicit safety warning or consent guidance. In the context of an agent coding skill, this lowers the barrier to generating host-input control behavior that could be misused for unwanted interaction with a connected computer.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The documentation includes example code that toggles a mains-connected relay with a button press but provides no warning that this can energize or cut power to connected equipment. In a hardware-coding assistant context, users may copy the example directly, increasing the chance of unsafe operation, unexpected device shutdown, or electrical hazards to attached loads.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The documentation includes realistic-looking LoRaWAN OTAA/ABP credential examples without an explicit warning that these values are sensitive secrets and must never be reused in production. Readers may copy example keys into real deployments, commit them to source control, or expose them in logs, leading to credential leakage and unauthorized device/network access.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The API docs describe getter/setter methods for application and session keys but do not warn that retrieving, printing, or logging these values can disclose active LoRaWAN credentials. In a coding-assistant context, this increases the chance generated example code will expose secrets during debugging or documentation-driven development.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The documentation shows realistic-looking LoRaWAN OTAA/ABP credentials and secret-bearing APIs without any warning that AppKey, NwkSKey, and AppSKey are sensitive and must never be reused, committed, or shared. In an assistant skill focused on generating code, users may copy these examples verbatim into deployed firmware or logs, leading to credential exposure, device impersonation, and unauthorized network access.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The documentation includes examples that initiate outbound HTTP and MQTT communication, including cleartext endpoints (`http://httpbin.org/post` and MQTT on port 1883), without warning users that data will leave the device or that transport security is absent. In a coding-assistant skill, users may copy these examples directly into deployed IoT devices, creating confidentiality and integrity risks through interception, tampering, or unintended data disclosure.

Missing User Warnings

Medium
Confidence
98% confidence
Finding
The example performs an HTTP POST to `http://httpbin.org/post`, which sends payload data and headers in cleartext over the network. On NB-IoT or carrier infrastructure, this enables interception or tampering by any party able to observe or manipulate traffic, and the docs provide no warning that the example is intentionally insecure.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The documentation examples use plaintext HTTP and MQTT over port 1883 with no warning that traffic is unauthenticated and unencrypted. On NB-IoT deployments, this can expose telemetry, credentials, or commands to interception or tampering by network intermediaries or misconfigured infrastructure, and readers may copy the insecure pattern directly into production firmware.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The example explicitly records microphone audio to a WAV file and then replays it, but the surrounding documentation does not warn users that microphone capture occurs or that recorded data is written to persistent storage. In an embedded assistant context, developers may copy this code into products or demos without adding consent, notice, or retention controls, creating privacy and compliance risk even though the sample itself is not overtly malicious.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The API reference for record_wav_file describes writing microphone audio to a file but omits any user-facing guidance about privacy, consent, or storage implications. Because this is official-style API documentation for a coding assistant skill, omission here can propagate into generated code and downstream applications that silently record and retain audio.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The example continuously prints live longitude, latitude, and altitude from the attached GPS device, which can expose precise real-world location data to logs, consoles, screenshots, or downstream telemetry. In a coding assistant context, users may copy this example directly into real deployments, so the absence of any privacy warning or minimization guidance increases the risk of inadvertent location disclosure.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The example immediately actuates a servo and DC motor in setup() without any warning that executing the sample will cause physical movement. In a hardware-control coding skill, this can surprise users, causing pinches, collisions, or damage to connected mechanisms if the device is powered and assembled when the code is tested.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The button-driven demo repeatedly increases motor speed and updates the motor output without a safety warning about attached hardware motion. Because this is interactive and encourages repeated presses, it raises the chance of unexpected acceleration, instability, or mechanical stress on a connected robot or motorized assembly.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The documentation explicitly promotes Auto Mode where QR decoding starts on power-up and cannot be stopped, but it does not warn that this behavior may continuously capture QR contents from nearby people, badges, screens, or labels. In an embedded/UIFlow2 coding assistant context, users may copy this example directly into deployed devices, creating a privacy and consent risk through unannounced ambient scanning.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The Motion Sensing Mode example enables automatic scan triggering based on scene changes without warning that nearby movement can cause unexpected decoding of QR codes in the environment. This is risky because it reduces deliberate user action even further than manual trigger modes and may lead to covert or accidental collection of encoded data in shared spaces.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The direction-control example drives a real stepper motor as soon as the loop runs, but the documentation provides no warning that executing the sample can cause immediate physical movement. In a hardware-control skill, this omission can lead to pinched fingers, collisions, or damage to attached mechanisms if users run the code on a live device without preparing the environment.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.