Apache ActiveMQ не проверяет должным образом поле оставшейся длины, что может привести к переполнению во время декодирования некорректных пакетов. Когда происходит это целочисленное переполнение, ActiveMQ может неправильно вычислить общую оставшуюся длину и впоследствии неверно интерпретировать полезную нагрузку как несколько управляющих пакетов MQTT, что делает брокера уязвимым к неожиданному поведению при взаимодействии с несовместимыми клиентами. Такое поведение нарушает спецификацию MQTT v3.1.1, которая ограничивает оставшуюся длину максимум 4 байтами.
Сценарий возникает при установленных соединениях после процесса аутентификации. Брокеры, которые не активируют транспортные соединители mqtt, не будут затронуты. Эта проблема затрагивает Apache ActiveMQ: до версий 5.19.2, от 6.0.0 до 6.1.8 и 6.2.0.
Пользователям рекомендуется выполнить обновление до версии 5.19.2, 6.1.9 или 6.2.1, которая устраняет проблему.
Показать оригинальное описание (EN)
Apache ActiveMQ does not properly validate the remaining length field which may lead to an overflow during the decoding of malformed packets. When this integer overflow occurs, ActiveMQ may incorrectly compute the total Remaining Length and subsequently misinterpret the payload as multiple MQTT control packets which makes the broker susceptible to unexpected behavior when interacting with non-compliant clients. This behavior violates the MQTT v3.1.1 specification, which restricts Remaining Length to a maximum of 4 bytes. The scenario occurs on established connections after the authentication process. Brokers that are not enabling mqtt transport connectors are not impacted. This issue affects Apache ActiveMQ: before 5.19.2, 6.0.0 to 6.1.8, and 6.2.0 Users are recommended to upgrade to version 5.19.2, 6.1.9, or 6.2.1, which fixes the issue.
Характеристики атаки
Последствия
Строка CVSS v3.1