🔍 CVE-2026-63341

7.5
CVSS Score
HIGH
2026-10-30
2026-11-05 03:17
✅ 완료

🇰🇷 한글 설명

Aedes MQTT 브로커는 1.1.1 이전 버전에서 토픽의 깊이와 구조적 복잡도를 제한하지 않아, 과도하게 깊은 토픽을 포함한 PUBLISH, SUBSCRIBE 또는 Will 메시지가 qlobber의 _split_words에서 처리되지 않은 'too many words' 예외를 발생시킬 수 있습니다. 이 예외는 Node.js 이벤트 루프까지 전파되어 브로커 프로세스 전체를 종료시키며, 프로세스가 재시작될 때까지 모든 클라이언트 연결이 끊기고 재연결이 불가능해집니다.

💡 쉬운 설명

악의적인 사용자가 아주 길고 복잡한 메시지 주제명을 보내면 MQTT 메시지 서버가 갑자기 멈춰버립니다. 서버가 다시 켜지기 전까지 모든 기기들이 연결될 수 없습니다.

🇺🇸 원문 (English)

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.

📍 영향받는 시스템

Aedes MQTT 브로커 1.1.1 미만 버전 (Node.js 기반 MQTT 브로커 사용 시스템)

⚔️ 공격 벡터

인증된 또는 설정에 따라 비인증 MQTT 세션을 맺은 공격자가 과도하게 깊은 토픽을 가진 PUBLISH, SUBSCRIBE, 또는 Will 메시지를 전송하여 브로커를 종료시킴

🛡️ 대응 방법

Aedes를 1.1.1 이상 버전으로 업그레이드하고, 가능하다면 토픽 깊이 제한 및 인증 설정을 강화

🔧 검증 코드

출력된 aedes 버전이 1.1.1 미만이면 취약하며, 1.1.1 이상이면 패치가 적용된 것입니다. 출력이 없으면 해당 프로젝트에 aedes가 설치되어 있지 않습니다.

Shell / Script
npm ls aedes 2>/dev/null | grep aedes

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H