🇰🇷 한글 설명
Moquette MQTT 브로커 0.18.1 미만 버전에서 패턴 기반 ACL 규칙 설정 시 발생하는 취약점입니다. 클라이언트 ID나 사용자 이름에 특수 문자(+ 또는 #)를 포함하면 권한 필터가 확장되어 타 테넌트의 데이터에 접근하거나 서비스 거부(DoS)를 유발할 수 있습니다.
💡 쉬운 설명
사용자 이름에 특수 기호를 넣어 시스템의 보안 규칙을 무력화하고 다른 사용자의 정보를 훔쳐보거나 시스템을 멈추게 할 수 있는 문제입니다. 마치 이름에 '모든 사람'이라는 단어를 넣어 모든 문을 열 수 있게 만드는 것과 같습니다.
🇺🇸 원문 (English)
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.
📍 영향받는 시스템
Moquette Java MQTT broker versions prior to 0.18.1
⚔️ 공격 벡터
클라이언트 ID 또는 사용자 이름에 MQTT 와일드카드 문자(+ 또는 #)를 포함하여 인증을 우회하거나 DoS 공격 수행
🛡️ 대응 방법
Moquette를 최신 버전인 0.18.1 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 Moquette 버전이 0.18.1 미만이면 취약한 상태이며, 0.18.1 이상이면 안전합니다.
grep -r "Moquette" /path/to/your/project/pom.xml | grep -E 'version' || echo 'Version not found'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
💻 영향받는 소프트웨어
IBM Verify Identity Access