Multiple Security Vulnerabilities in Moquette MQTT Broker
Moquette-broker versions <= 0.18.0 are susceptible to cross-tenant ACL bypass, remote unauthenticated denial-of-service, and cross-session durable storage corruption.
CVE search metadata
CVE search record: CVE-2026-85724. Severity: critical. CVSS: 9.6. KEV: no. Product: moquette-broker (<= 0.18.0). Brief: Multiple Security Vulnerabilities in Moquette MQTT Broker. Brief link: https://feed.craftedsignal.io/briefs/2026-09-moquette-broker-vulnerabilities/
Moquette-broker versions 0.18.0 and earlier contain multiple high-severity vulnerabilities resulting from inadequate validation of untrusted MQTT client input. The most critical issue (CVE-2026-85724) allows a remote unauthenticated attacker to bypass pattern-based ACLs by injecting wildcard characters (+, #) into the Client ID or username, leading to cross-tenant unauthorized data access and injection. Additional vulnerabilities include a remote unauthenticated denial-of-service (DoS) condition triggered by malformed MQTT packets such as $share subscriptions, which cause uncaught exceptions in the session event loop. Further issues include an authorization bypass for Will-message publications and a cross-session durable corruption bug stemming from H2 storage file collisions. These flaws present a significant risk in multi-tenant environments, as the broker does not sufficiently isolate sessions or validate input prior to processing.
Impact
Successful exploitation allows unauthenticated remote attackers to gain cross-tenant read and write access, crash the entire MQTT broker service, publish unauthorized Will-messages, or corrupt cross-session durable data. This affects any deployment utilizing pattern-based ACLs in a multi-tenant configuration, potentially leading to widespread information disclosure and service outages.
Recommendation
- Upgrade to a version of Moquette-broker that remediates CVE-2026-85724.
- Implement strict validation on Client ID and username fields during the MQTT CONNECT phase to reject input containing wildcard characters (+, #).
- Harden the SessionEventLoop to catch all Throwable exceptions and implement a robust supervision strategy to prevent broker-wide crashes.
- Enforce authorization checks for Will-message publications consistent with standard PUBLISH operations.
- Implement resource caps on connections, queues, and interceptor queues to mitigate OOM-based DoS risks.
- Ensure H2 persistent storage namespaces are appropriately separated to prevent ID collisions.
Immediate actions
Inventory all MQTT broker instances to identify versions running 0.18.0 or older.
Mitigations
Upgrade moquette-broker to a secure version post-0.18.0.
CVE-2026-85724