LOCAL MQTT SECURITY TOOL
Find risky MQTT topic permissions before deployment
Lint a fixed, line-based ACL document for MQTT wildcard mistakes and RunMQTT tenant, device, and direction risks. Analysis happens entirely in this browser tab.
Lint an ACL document locally
Start from a safe or intentionally unsafe fixture. Findings point to line numbers without sending the document to RunMQTT or analytics.
Local-only analysis
Your policy stays in this browser tab. It is not uploaded, logged, placed in a URL, or saved to local storage.
Analyze the document to see line-specific findings.
One explicit boundary per line
The format is deliberately small. It models a profile, an optional literal tenant scope, one principal, and directional ACL rules.
// Comments start with //
profile runmqtt
scope tenants/acme
principal device sensor-42
publish tenants/acme/devices/sensor-42/telemetry
subscribe tenants/acme/devices/sensor-42/commands/#Use profile mqtt for protocol-only checks or profile runmqtt to add scope, device, and direction checks.
Each ACL rule starts with publish, subscribe, or both, followed by exactly one MQTT topic filter.
RunMQTT scope is a literal topic prefix used by the linter to detect tenant escape; it is not uploaded or added to a Broker.
Standards checks and product checks stay separate
Every finding is labeled MQTT or RunMQTT so a protocol requirement is not confused with a product-specific safety model.
Duplicates and overlaps
RunMQTT boundaries
RunMQTT direction heuristics
Reproducible rules, not a score
The linter returns deterministic rule codes and line numbers. It does not invent a security score or infer runtime enforcement.
Static findings are not a security audit
A clear result means only that the supplied document passed the modeled checks. Broker configuration and negative authorization tests remain decisive.
Continue the security review
Use the static findings to refine policy design, then verify expected and denied traffic against the real Broker.