Vulnerability · Published Sep 23, 2026 · Assigned by GitHub_M
CVE-2026-85724Moquette pattern ACL wildcard injection allows cross-tenant authorization bypass
Critical 9.6
In plain English
A critical-severity incorrect authorization in moquette from moquette-io. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 25% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official 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 packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| Maven | io.moquette:moquette-broker | 0.18.1 | GHSA-5f42-97gr-vfhq |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| moquette-io | moquette | < 0.18.1 |
Weakness: CWE-863, CWE-155 · Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N