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 でのみ利用可能です。
モジュールの詳細については、以下のサイトをご確認ください。
対処方法
本脆弱性が改修されているバージョンへアップグレードすることで対処可能です。
- NGINX Plus : NGINX Plus R32 P1、NGINX Plus R31 P3
まとめ
ngx_stream_mqtt_filter_module の脆弱性について記載いたしました。
このモジュールは NGINX Plus に初めから含まれておりますが、mqtt を利用していない場合、影響はございません。
これを機会にバージョンやコンフィグを見直してみてください。