Description
Moquette is a lightweight Java MQTT broker. Prior to 0.18.1, when pattern-based ACL rules are configured, AuthorizationsCollector.canDoOperation substitutes client ID and username values directly into rules containing %c or %u and then treats the result as an MQTT topic filter. A client that uses + or # in either identity can broaden the substituted filter and gain cross-tenant read and write access. A # identity can also produce an invalid filter that triggers a NullPointerException in Topic.match and disrupts session processing. This issue is fixed in version 0.18.1.
Affected products
moquette: moquette
References4
- github.com/moquette-io/moquette/security/advisories/GHSA-5f42-9… ExploitMitigationVendor Advisory
- github.com/moquette-io/moquette/security/advisories/GHSA-5f42-9… ExploitMitigationVendor Advisory
- github.com/moquette-io/moquette/commit/b4a98bb3f3425ece476ed073… Patch
- github.com/moquette-io/moquette/releases/tag/v0.18.1 Release Notes
Metrics
- CVSS 3.1
-
9.6
CRITICAL
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N - EPSS — exploit probability
- 0% percentile: 25 · as of 9 November 2026
- CWE
- CWE-155CWE-863
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.