CVE-2026-85724 json
Moquette pattern ACL wildcard injection allows cross-tenant authorization bypass
published last mo. modified 23d ago also CVE-2026-95842 , CVE-2026-95843 , CVE-2026-95844 , CVE-2026-95845 , CVE-2026-95846 , CVE-2026-95847 , CVE-2026-95848 , GHSA-5f42-97gr-vfhq , EUVD-2026-85411
- cvss
- 9.6
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 24%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- maven io.moquette:moquette-broker 0.18.1
- moquette moquette 0.18.1
- github.com/moquette-io/moquette@b4a98bb commit
- github.com/moquette-io/moquette@f5a323f commit
- github.com/moquette-io/moquette@d777535 commit
- github.com/moquette-io/moquette@ca17e0b commit
- github.com/moquette-io/moquette@c65b3e9 commit
- github.com/moquette-io/moquette@affdc71 commit
- github.com/moquette-io/moquette@86feb7c commit
- github.com/moquette-io/moquette@72d6c82 commit
- github.com/moquette-io/moquette@2649863 commit
- github.com/moquette-io/moquette@14a2f4f commit
Is CVE-2026-85724 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- last mo.
Exploit prediction
0.32% chance of exploitation in the next 30 days, higher than 24% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- github.com https://github.com/moquette-io/moquette/security/advisories/GHSA-5f42-97gr-vfhq referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 9.6 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N |
| GitHub | 3.1 | 9.6 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| maven | io.moquette:moquette-broker | <0.18.1 |
0.18.1 |
Affected products
- moquette-io moquette
Classification
References
-
github.com
/moquette-io/moquette/commit/b4a98bb3f3425ece476ed073aa080c627c1239af
web, patch
-
github.com
/moquette-io/moquette/pull/959
web
-
github.com
/moquette-io/moquette/pull/958
web
-
github.com
/moquette-io/moquette/pull/957
web
-
github.com
/moquette-io/moquette/commit/f5a323fe782d1505c0097498cb22eb6ec6c96973
web
-
github.com
/moquette-io/moquette/commit/d77753542e262b7aa573dee3c2b05e44439bbd96
web
-
github.com
/moquette-io/moquette/commit/ca17e0be19e86d5e291f4532dfdc94616c8e0049
web
-
github.com
/moquette-io/moquette/commit/c65b3e90fa03e562e2c2fa69c3ee916c2cbfbd2b
web
-
github.com
/moquette-io/moquette/commit/affdc71fdba92dc020421678970ae70518fb6da2
web
-
github.com
/moquette-io/moquette/commit/86feb7c31e6fac849c465d8079d08c0e7ef01cdf
web
-
github.com
/moquette-io/moquette/commit/72d6c8257191d2e4b2e3aa11ab25fd09f88c6cb7
web
-
github.com
/moquette-io/moquette/commit/26498631e92d50440b4e3ed42fa546253cc4090c
web
-
github.com
/moquette-io/moquette/commit/14a2f4fd280c8f6a791600c306cbccecb7c67007
web
-
github.com
/moquette-io/moquette/security/advisories/GHSA-5f42-97gr-vfhq
exploit, web, mitigation, vendor-advisory
-
github.com
/moquette-io/moquette/releases/tag/v0.18.1
web, release-notes
-
nvd.nist.gov
/vuln/detail/CVE-2026-85724
advisory
-
github.com
/moquette-io/moquette
package
Sources
- CVE List CVE-2026-85724
- GitHub Advisory GHSA-5f42-97gr-vfhq
- NVD CVE-2026-85724
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.