T09 · Insecure Skill Coding Practices
- Location
scripts/rwc.py:75- Finding
MQTT TLS Certificate Verification Is Explicitly Disabled
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill does what it says, but it controls real hardware and handles credentials with weak safety and security guardrails.
Install only if you are comfortable letting an agent send commands to real ESP32-connected hardware. Use it on trusted networks, avoid entering real passwords on the command line, verify `config.json` before login or registration, and treat automation rules as live hardware controls that may repeat until stopped.
scripts/rwc.py:75MQTT TLS Certificate Verification Is Explicitly Disabled
scripts/rwc.py:216Arbitrary JSON Fields Can Override Allowlisted Physical Device Commands
scripts/rwc.py:123Login and Registration Credentials Can Be Sent to an Arbitrary Configured API Endpoint
scripts/rwc.py:335Passwords Are Accepted Through Command-Line Arguments
SKILL.md:14Python Dependencies Are Installed Without Version or Integrity Pinning
The act command performs immediate physical-world operations on relays, servos, LEDs, and buzzers without confirmation, authorization checks, or safety interlocks. In a skill explicitly designed to control real hardware, silent actuation materially increases the risk of unsafe motion, power switching, equipment damage, or harm caused by prompt injection or accidental invocation.
The monitor loop automatically converts sensor input into real-world actions based on persisted rules, with no approval step, validation of rule safety, or fail-safe constraints. Because this skill's core context is physical device control, autonomous triggering is especially dangerous: malformed sensor data, spoofed MQTT messages, or unsafe rules can repeatedly actuate hardware without human oversight.
The skill exposes capabilities that imply file access and network communication but does not declare any explicit tool scope or permission boundaries. In an agent environment, this can lead to overbroad tool use, making it harder to enforce least privilege and increasing the chance that the skill can read local configuration/secrets or send device commands without clear policy controls.
This skill enables physical-world actions such as relay, servo, LED, buzzer, and automation control, but it does not prominently warn that executing these commands can cause real-world effects or require user confirmation and safety checks. In the context of IoT and actuator control, an agent could trigger unsafe or unintended actions that affect equipment, environments, or people.
The code writes rule data to disk via RULES_PATH.write_text(), creating persistent changes to the local filesystem. Although the surrounding function manages rules, there is no explicit warning in the save path itself or adjacent comments/docstrings disclosing that user actions will modify a local file.
The manifest frames this skill around controlling ESP32/IoT devices, reading sensors, actuating hardware, and creating automation rules. Implementing user account registration and login against a cloud platform adds identity-management capability that is not clearly justified by the stated physical-device control purpose.
No suspicious patterns detected.