High severity · published Sep 23, 2026
CVE-2026-95847
Moquette client IDs can cause cross-session H2 durable-queue corruption
7.5
CVSS
0.3%
EPSS
No
On KEV
Description
Moquette is a lightweight Java MQTT broker. Prior to 0.18.1, H2PersistentQueue derives a session's message-map name as queue_ plus the client ID and its metadata-map name as queue_ plus the client ID plus _meta. A durable session whose client ID ends in _meta can therefore make its message map collide with another client's metadata map. The colliding sessions read and write the same H2 MVStore map with incompatible value types, which can corrupt queue head and tail data and cause message loss, misdelivery, failed queue reloads, or exposure of queued content across sessions. This issue is fixed in version 0.18.1.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
None
Integrity
High
Availability
None
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.3% · higher than 28% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
MO
moquette · moquette-io
< 0.18.1 · source: vendor, NVD
Affected product
MO
moquette
moquette-io
More from moquette
9.6
CVE-2026-85724
Moquette pattern ACL wildcard injection allows cross-tenant authorization bypass
9.1
CVE-2026-95848
Moquette fails open when configured authentication or authorization classes cannot load
7.5
CVE-2026-95846
Moquette publishes Last-Will messages without enforcing write authorization
7.5
CVE-2026-95845
Moquette unbounded per-session message queues allow memory exhaustion
7.5
CVE-2026-95844
Moquette deeply nested MQTT topics can cause stack exhaustion