CocoaMQTT — это клиентская библиотека MQTT 5.0 для iOS и macOS, написанная на Swift. До версии 2.2.2 в логике анализа пакетов CocoaMQTT существовала уязвимость, которая позволяла злоумышленнику (или скомпрометированному/злонамеренному брокеру MQTT) удаленно привести к сбою хост-приложения iOS/macOS/tvOS. Если злоумышленник публикует 4-байтовые искаженные полезные данные в общей теме с флагом RETAIN, установленным в значение true, брокер MQTT сохранит полезные данные.
Каждый раз, когда уязвимый клиент подключается и подписывается на эту тему, брокер автоматически отправляет искаженный пакет. Приложение мгновенно выйдет из строя в фоновом режиме еще до того, как пользователь сможет с ним взаимодействовать. Это фактически «блокирует» мобильное приложение (постоянный DoS) до тех пор, пока сохраненное сообщение не будет вручную удалено из базы данных брокера.
Эта проблема исправлена в версии 2.2.2.
Показать оригинальное описание (EN)
CocoaMQTT is a MQTT 5.0 client library for iOS and macOS written in Swift. Prior to version 2.2.2, a vulnerability exists in the packet parsing logic of CocoaMQTT that allows an attacker (or a compromised/malicious MQTT broker) to remotely crash the host iOS/macOS/tvOS application. If an attacker publishes the 4-byte malformed payload to a shared topic with the RETAIN flag set to true, the MQTT broker will persist the payload. Any time a vulnerable client connects and subscribes to that topic, the broker will automatically push the malformed packet. The app will instantly crash in the background before the user can even interact with it. This effectively "bricks" the mobile application (a persistent DoS) until the retained message is manually wiped from the broker database. This issue has been patched in version 2.2.2.
Характеристики атаки
Последствия
Строка CVSS v3.1