xiao-esp32s3-mqtt-dashboard

Warn

Audited by Gen Agent Trust Hub on Jul 28, 2026

Risk Level: MEDIUMCOMMAND_EXECUTIONEXTERNAL_DOWNLOADSPROMPT_INJECTION
Full Analysis
  • [PRIVILEGE_ESCALATION]: The skill uses Start-Process -Verb RunAs to execute PowerShell scripts (setup_broker.ps1 and setup_firewall.ps1) with administrative privileges. These scripts are designed to modify the Mosquitto configuration file at C:\Program Files\Mosquitto\mosquitto.conf and create new inbound firewall rules using New-NetFirewallRule. While these actions are documented as necessary for the skill's networking functionality, they involve high-privilege operations that should be reviewed carefully.
  • [INDIRECT_PROMPT_INJECTION]: The web dashboard application is vulnerable to indirect injection attacks through the MQTT broker.
  • Ingestion points: The app.js script processes incoming MQTT messages via client.on('message').
  • Boundary markers: No delimiters or sanitization logic is present to isolate data from the dashboard UI structure.
  • Capability inventory: The dashboard can execute arbitrary JavaScript in the context of the user's browser (XSS).
  • Sanitization: The renderCard function in app.js uses innerHTML to display the device status and id derived from MQTT topics and payloads without escaping, allowing a malicious MQTT client on the same network to inject and execute scripts in the dashboard UI.
  • [UNVERIFIABLE_DEPENDENCIES_AND_REMOTE_CODE_EXECUTION]: The skill installs the PubSubClient library via arduino-cli and loads the MQTT.js library from a public CDN (unpkg.com). Both are standard and expected dependencies for the skill's stated purpose of MQTT communication.
  • [COMMAND_EXECUTION]: The skill instructs the agent to execute several local commands for network diagnostics (Get-NetIPAddress), service management (Restart-Service), and firmware deployment (arduino-cli).
Audit Metadata
Risk Level
MEDIUM
Analyzed
Jul 28, 2026, 07:27 AM
Security Audit — agent-trust-hub — xiao-esp32s3-mqtt-dashboard