Skip to main content

Moquette CVE-2026-95846

| EUVDEUVD-2026-85416 HIGH
Missing Authorization (CWE-862)
2026-09-23 GitHub_M
8.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Connect anonymously to broker
  2. Delivery
    Configure Will on restricted topic
  3. Exploit
    Abruptly disconnect session
  4. Execution
    Broker publishes Will bypassing ACL
  5. Impact
    Unauthorized message injected to subscribers

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the broker enforces topic write authorization (an IAuthorizatorPolicy/ACL is configured to restrict PUBLISH to certain topics) - the bug only matters where such an ACL boundary exists to be bypassed; on a fully permissive broker there is nothing to escape. The attacker must (1) be able to connect (trivial: Moquette accepts anonymous clients by default), (2) set a Last-Will Testament targeting a restricted topic during CONNECT, and (3) trigger an unexpected/abrupt disconnect (attacker-controlled, e.g. dropping the TCP socket). No authentication, user interaction, or non-default configuration beyond having ACLs enabled is required. The limiting factor is purely that the injected message goes only to subscribers of the chosen restricted topic - impact scales with how security-sensitive those topics are (e.g. device command/control channels).

Impact

The vendor CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N with VI:H, all other impacts N) frames this as a network-reachable, unauthenticated, integrity-only flaw - consistent with the description: a Last-Will message is published via PostOffice.publishWill without the canWrite/reserved-topic checks applied to a normal PUBLISH, so a client can inject messages into topics it is not authorized to write. Because Moquette accepts anonymous clients by default and the attacker fully controls the disconnect that triggers the Will, PR:N and AC:L are defensible; the abuse channel is trivially reachable. There is no confidentiality or availability impact (VC:N/VA:N), so this is a targeted integrity/authorization-bypass issue rather than a full compromise - CWE-862 (missing authorization), NOT authentication bypass or RCE (the source-code advisory explicitly disclaims RCE on this memory-safe JVM). No EPSS score, no CISA KEV listing, and no independent evidence of active exploitation are present in the input, so real-world exploitation pressure is unquantified; however, a source-only proof-of-concept (the WillUnauthorizedPublishTest regression test and advisory PoCs) demonstrates the flaw concretely. Net: a real, credible authorization-bypass bug worth patching, but its practical impact hinges on whether the deployment relies on topic ACLs to enforce a security boundary - where it does (multi-tenant/IoT command topics), integrity risk is genuine; where ACLs are cosmetic, impact is limited.

Exploit ScenarioDerived

An attacker connects to a Moquette broker (anonymous by default) and sets a Last-Will topic pointing at a restricted topic it has no write permission for - e.g. a control/command topic subscribed to by IoT actuators or other tenants. The attacker then abruptly drops the connection, causing the broker to publish the crafted Will payload to that protected topic, bypassing the ACL. A source-only proof-of-concept regression test (WillUnauthorizedPublishTest, per GHSA-9jjc-fw8x-fmwx) confirms the behavior; exploitation is remote and requires no authentication or user interaction.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 23, 2026

Unauthorized message injection in the Moquette lightweight Java MQTT broker affects all releases prior to 0.18.1: PostOffice.publishWill publishes a client's Last-Will Testament without running the canWrite authorization and reserved-topic checks that gate a normal PUBLISH, so remote unauthenticated attackers (CVSS vector PR:N) can register a Will on a topic they are not allowed to write and have the broker deliver that message to subscribers when the connection is abruptly dropped. This is an integrity-only flaw (C:N/I:H/A:N) whose real-world severity depends on how sensitive the restricted topic is - for example device command-and-control channels - and exploitation requires that an ACL or IAuthorizatorPolicy actually restricts writes to the targeted topic; vendors score it 8.7 (CVSS 4.0). Publicly available exploit code exists (the upstream advisory ships source-level PoCs, including a wildcard-ACL injection proof), but there is no indication in the supplied data of confirmed active exploitation (CISA KEV), and no patch is available other than upgrading to vendor-released version 0.18.1.

RemediationAI

Vendor-released patch: upgrade to Moquette 0.18.1 (release tag https://github.com/moquette-io/moquette/releases/tag/v0.18.1, artifact io.moquette:moquette-broker 0.18.1), which applies the missing canWrite gate in PostOffice.publishWill via commit f5a323fe782d1505c0097498cb22eb6ec6c96973 and also addresses the bundled DoS, pattern-ACL wildcard-injection and durable-corruption issues fixed by PRs #957, #958 and #963 (see the advisory https://github.com/moquette-io/moquette/security/advisories/GHSA-5f42-97gr-vfhq); upgrading is strongly preferred over partial mitigations because the same audit found the affected code paths reachable pre-authentication. If an immediate upgrade is impossible, note that the flaw only has effect when an authorizator restricts writes, so the most practical compensating control is to stop untrusted clients from connecting at all and thereby registering Wills: require real authentication instead of Moquette's anonymous-by-default AcceptAllAuthenticator and restrict broker reachability to trusted networks, with the trade-off that Moquette's default fail-open authenticator loading means a misconfigured or unloadable authenticator class silently reverts to PermitAll. A second option is to enforce the write boundary outside the broker - an MQTT-aware gateway or L7 proxy that rejects CONNECT packets whose Will topic falls outside the client's permitted topic space - which costs an extra hop and adds a new stateful component to operate. Third, if last-will functionality is not needed in a deployment, standardize clients and gateways on omitting the Will flag in CONNECT (a client-side policy that cannot be enforced by the broker itself, so it only helps for controlled device fleets) and, where restricted topics carry command/control traffic, deny subscriptions to those topics for all but privileged clients and alert on any publish to them, accepting that this narrows the blast radius rather than removing the bypass. Finally, since exploit code for the related issues is public, review logs for Wills published on restricted topics around unexpected disconnects and treat any such message as an integrity compromise of that topic.

Affected VersionsENISA

moquette < 0.18.1

Affected Packages

maven io.moquette:moquette-broker fix: 0.18.1
euvd moquette fix: 0.18.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in maven, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Moquette is a lightweight MQTT broker written in Java, embedding Netty and an H2-backed durable store (Maven artifact io.moquette:moquette-broker, CPE cpe:2.3:a:moquette-io:moquette:*:*:*:*:*:*:*:* covering every version up to and including 0.18.0, as the CPE has no version bound and the advisory states 'vulnerable: <= 0.18.0'). The defect is CWE-862 (Missing Authorization): in MQTT, a client may attach a Last Will and Testament (LWT) to its CONNECT packet - a topic and payload the broker is obliged to publish if the client disconnects abnormally. Moquette's normal publish path validates the sender with the configured IAuthorizatorPolicy.canWrite and applies reserved-topic (e.g. $-prefixed) protection, but the Will path in PostOffice.publishWill bypassed those checks entirely. The fix commit f5a323fe782d1505c0097498cb22eb6ec6c96973 inserts an explicit authorizator.canWrite(Topic.asTopic(will.topic), "", WILL_PUBLISHER) gate before the Will is published and returns early with an error log when the topic is not writable. The same upstream advisory bundles several related broker weaknesses from the same audit - pattern-ACL wildcard injection via unvalidated clientId/username substituted into '%c'/'%u' rules (cross-tenant read and write), an unhandled exception wedging the shared SessionEventLoop (malformed $share/ SUBSCRIBE, deeply nested topics, ACL NPE → remote denial of service), cross-session durable corruption when a clientId collides with an H2 queue name, and fail-open authenticator/authorizator class loading - which contextualizes why the 0.18.1 release note lists multiple fixes alongside the Last-Will writability check. Note that only the Last-Will authorization bypass is the subject of this CVE.

Know when Moquette gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Remote, anonymous-by-default access and attacker-controlled disconnect give AV:N/AC:L/PR:N/UI:N; impact is unauthorized message injection into restricted topics, integrity-only (I:H), with no confidentiality or availability effect.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 23, 2026 - 18:17 EUVD
CVE Published
Sep 23, 2026 - 16:29 cve.org
HIGH 8.7

DescriptionCVE.org

Moquette is a lightweight Java MQTT broker. Prior to 0.18.1, PostOffice.publishWill publishes a client's Last-Will message without applying the canWrite authorization and reserved-topic checks used for a normal PUBLISH. A client can configure a Will for a topic that the client is not permitted to write and cause the broker to publish the unauthorized message when the client disconnects unexpectedly. This issue allows unauthorized message injection into restricted topics. This issue is fixed in version 0.18.1.

Technical POC Analysis

CWE-862 (Missing Authorization) in PostOffice.publishWill (module broker/, package io.moquette), audited at commit da7f719a6bab9829d520b5838e13ea7b1f9be3ef.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A high-severity authorization flaw in the Moquette lightweight Java MQTT broker (all releases prior to 0.18.1) allows an unauthenticated remote party to register a Last-Will message on a topic it is not permitted to write, and the broker then delivers that forged message to subscribers when the connection drops. Because MQTT brokers commonly carry device command-and-control traffic, affected organizations face forged instructions reaching operational devices or IoT fleets, degrading the integrity of those channels - confidentiality and availability are not impacted, so leadership should weight the risk by how sensitive the restricted topics are. The concern is amplified because publicly available exploit code exists and the supplied metadata identifies no vendor-released patch, leaving configuration and network controls as the near-term mitigation.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict broker network exposure to trusted client networks and require TLS with per-client authentication; eliminate wildcard or overly broad ACL write grants and confine each client's Will topic to its own namespace so unpermitted topics cannot be targeted; disable Last-Will registration entirely where the feature is not operationally required; segment the broker into its own network zone with least-privilege routing to device command channels; log, alert on, and rate-limit connection drops followed by Will deliveries on restricted topics; and validate any 0.18.1 (or later) release against the upstream advisory before treating it as the remediated version.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Low
niche lightweight open-source Java MQTT broker, limited enterprise footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy