CVE DatabaseCVE-2026-63341
한국어 권고문 →
CVE-2026-633417.5/HIGHCWE-248CWE-400

Aedes MQTT Broker Denial of Service (DoS) via Excessive Topic Depth (CVE-2026-63341)

Affected Vendors
moscajs
Affected Components
aedes
Published Date
2026-10-30

Executive & SecOps Summary

SECOPS ASSESSMENT
Affected Scope

All Node.js environments running Aedes MQTT broker versions prior to 1.1.1.

Impact

An attacker can trigger an uncaught exception by sending messages with excessively deep topic structures, leading to a complete broker crash.

Mitigation

Immediately update the Aedes package to version 1.1.1 or higher.

Affected Products & Version Scope

Aedes versions < 1.1.1. Exploitable by any client capable of establishing an MQTT session, depending on the broker's authentication configuration.

Remediation & Live Workaround Commands

PATCH & WORKAROUND

1. Package Update

Update the Aedes dependency to the fixed version (1.1.1) using your package manager.

bash
npm update aedes

2. Temporary Mitigation

  • Process Management: Use a process manager like PM2 or Kubernetes LivenessProbes to ensure the broker restarts automatically upon a crash.
  • Topic Filtering: Implement a custom validation layer in authorizePublish or authorizeSubscribe to reject topics exceeding a reasonable depth (e.g., 32 or 64 segments).
javascript
// Example validation
const MAX_DEPTH = 50;
if (topic.split('/').length > MAX_DEPTH) {
  // Reject the packet
}
Recommended Security Control & Mitigation Partner
Snyk Open Source & Container Security
Upgrade to Aedes v1.1.1 immediately to mitigate the risk of service interruption and ensure system availability.

Scan Your Repositories for Transitive Vulnerable Dependencies in 30 Seconds

Automatically detect vulnerable packages across npm, PyPI, Maven, and Go, and open automated fix Pull Requests without breaking your build.

Free Forever Tier · 1-Click GitHub/GitLab Auto-PR
Master DevSecOps: Automated SAST/SCA in GitHub Actions & Kubernetes
View Course Curriculum

Technical Root Cause & Exploitation Mechanics

The vulnerability stems from a lack of input validation regarding topic depth before passing data to the underlying qlobber library. When a PUBLISH, SUBSCRIBE, or Will message contains a topic with too many segments, qlobber._split_words in lib/qlobber.js throws a 'too many words' exception. Since Aedes handlers (e.g., handlers/subscribe.js) do not properly catch this exception, it bubbles up to the Node.js event loop, terminating the entire process. The Will message path is particularly dangerous as it can be triggered independently when a client disconnects ungracefully, bypassing standard publish handlers.

Official Vendor Advisories & References

NVD Original English Description

Aedes is an MQTT broker that can run on any stream server. Prior to 1.1.1, the MQTT broker does not bound topic depth or structural complexity before passing topics through `mqemitter` into `qlobber`. A `PUBLISH`, `SUBSCRIBE`, or registered `Will` message containing an excessively deep topic can reach `qlobber._split_words` in `lib/qlobber.js` and trigger an uncaught `too many words` exception. Calls from `handlers/subscribe.js` and the publishing logic are not protected against that exception, so it escapes to the `Node.js event loop` and terminates the entire broker. The `Will` path is independently reachable when a client disconnects ungracefully: it calls `broker.publish` directly and bypasses the `PUBLISH` handler. An attacker must be able to establish an `MQTT session`, authenticated or unauthenticated according to broker configuration. A successful attack disconnects all legitimate clients and prevents reconnection until the broker process restarts. This issue is fixed in version 1.1.1.

SecOps Advisory Dispatch & RSS Feed

Subscribe to Daily Vulnerability Briefings & KEV Alerts

Concise morning briefings for SecOps, DevSecOps, and SRE teams covering newly exploited CVEs and mitigation priorities.

Slack / Teams / RSS Feed: