セキュリティ

ngx_stream_mqtt_filter_module の脆弱性について(CVE-2024-39792)

NGINX Plus の MQTT モジュールにて以下の脆弱性が報告されましたので、詳細について記載いたします。

CVE-2024-39792

こんにちは。NGINX エンジニアの narai です。
NGINX Plus ngx_stream_mqtt_filter_module にて脆弱性が報告されたため調査しました。
※ ngx_stream_mqtt_filter_module は NGINX で MQTT を扱う際に使用するモジュールとなります。
NGINX OSS では利用できないモジュールとなりますので、NGINX OSS は本脆弱性の対象外となります。

結論から申し上げますと、以下のように mqtt を有効にしている場合のみ、本脆弱性の影響を受ける可能性があります。

    stream {
        listen 127.0.0.1:18883; 

        mqtt on;  #<--!!! 

また、脆弱性に該当している場合でも、脆弱性改修バージョンへアップグレードすることで対処可能です。

脆弱性の詳細

特定のリクエストによって NGINX がメモリリークする脆弱性が報告されました。
メモリ使用率が高くなりますと、パフォーマンスの低下や最終的には NGINX Process の再起動を引き起こす可能性がございます。

詳しくは以下のメーカーサイトをご確認ください。

K000140108: NGINX Plus MQTT vulnerability CVE-2024-39792

該当バージョン

NGINX Plus R30 – R32
※ これ以前の NGINX Plus はサポートが終了しているため、脆弱性の対象となるかは確認されておりません。
ngx_stream_mqtt_filter_module は R29 で追加されたモジュールとなりますので、R28 以前のバージョンは対象外になると思われますが、すでにサポートが終了しているバージョンであるため正式な情報は公開されておりません。

NGINX OSS では、ngx_stream_mqtt_filter_module が利用できないため本脆弱性の対象外となります。
カスタムビルドされた NGINX をご利用の場合、ビルド元の情報をご確認ください。

該当有無の確認方法

該当バージョンの NGINX Plus には、ngx_stream_mqtt_filter_module がパッケージに含まれております。
そのため、コンフィグで mqtt を有効にしている場合、脆弱性の影響を受ける可能性があります。

脆弱性の影響を受ける可能性のある設定

    stream {
        listen 18883;
        mqtt on;  #<--!!! 

※ MQTT は stream block でのみ利用可能です。

モジュールの詳細については、以下のサイトをご確認ください。

ngx_stream_mqtt_filter_module

対処方法

本脆弱性が改修されているバージョンへアップグレードすることで対処可能です。

  • NGINX Plus : NGINX Plus R32 P1、NGINX Plus R31 P3

まとめ

ngx_stream_mqtt_filter_module の脆弱性について記載いたしました。

このモジュールは NGINX Plus に初めから含まれておりますが、mqtt を利用していない場合、影響はございません。
これを機会にバージョンやコンフィグを見直してみてください。

この記事に関連する製品・サービス