Cisco Japan Blog

注目の脆弱性:Cesanta Mongoose Server で発見された複数の脆弱性

1 min read



脆弱性の発見者:Cisco Talos の Aleksandar Nikolic

Talos は本日(10 月 31 日)、Cesanta Mongoose サーバで確認された複数の脆弱性を公開します。

Cesanta Mongoose は、HTTP、MQTT、MDNS といった多種類のネットワーク プロトコルを実装したライブラリです。組み込みデバイス用途向けに設計されているため、ほぼすべての主要な IoT プラットフォームに対応しており、実際に多くの IoT デバイスで採用されています。ソフトウェア サイズが小さいため、あらゆるインターネット接続デバイスを Web サーバとして動作させることができます。Mongoose は GPL v2 および商用ライセンスの下で利用可能です。
今回公開する脆弱性は、すべてバージョン 6.10popup_icon で修正済みです。

脆弱性の詳細

TALOS-2017-0398(CVE-2017-2891):Cesanta Mongoose の HTTP サーバ実装で、CGI が指定された際にリモートでコードが実行される脆弱性

TALOS-2017-0398popup_icon は解放済みメモリ使用 (use-after-free)の脆弱性で、HTTP サーバとして実装された Cesanta Mongoose 6.8 に存在します。CGI を指定する通常の HTTP POST リクエストにより、以前に解放されたポインタが再利用され、その結果としてリモートでコードが実行される危険性があります。この脆弱性をエクスプロイトするには、HTTP POST リクエストをネットワーク経由で送信する必要があります。

TALOS-2017-0399(CVE-2017-2892):Cesanta Mongoose の MQTT で、ペイロードの長さが指定された際にリモートでコードが実行される脆弱性

TALOS-2017-0399 popup_icon は任意メモリ参照の脆弱性で、Cesanta Mongoose 6.8 の MQTT パケット解析機能に起因します。 細工された MQTT パケットにより、領域外(out-of-bounds)メモリや任意メモリの読み取り/書き込みが起こる可能性があります。これには、情報漏えい、DoS 攻撃、任意コードのリモート実行などの危険性が伴います。この脆弱性をエクスプロイトするには、細工された MQTT パケットをネットワーク経由で送信する必要があります。

TALOS-2017-0400(CVE-2017-2893):Cesanta Mongoose の MQTT SUBSCRIBE コマンドに起因する DoS の脆弱性

TALOS-2017-0400 popup_icon は NULL ポインタ参照外しの脆弱性で、Cesanta Mongoose 6.8 の MQTT パケット解析機能に起因します。 MQTT SUBSCRIBE パケットにより NULL ポインターの参照外しが引き起こされ、サーバのクラッシュや DoS 攻撃につながる危険性があります。この脆弱性をエクスプロイトするには、細工された MQTT パケットをネットワーク経由で送信する必要があります。

TALOS-2017-0401(CVE-2017-2894):Cesanta Mongoose の MQTT SUBSCRIBE で、複数トピックが指定された際にリモートでコードが実行される脆弱性

TALOS-2017-0401 popup_icon はスタック バッファ オーバーフローの脆弱性で、Cesanta Mongoose 6.8 の MQTT パケット解析機能に起因します。 細工された MQTT SUBSCRIBE パケットがスタック バッファ オーバーフローを引き起こし、その結果としてリモートでコードが実行される危険性があります。この脆弱性をエクスプロイトするには、細工された MQTT パケットをネットワーク経由で送信する必要があります。

TALOS-2017-0402(CVE-2017-2895):Cesanta Mongoose の MQTT SUBSCRIBE でトピック長が指定された際に、情報漏洩が起きる脆弱性

TALOS-2017-0402 popup_icon は任意メモリ参照の脆弱性で、Cesanta Mongoose 6.8 の MQTT パケット解析機能に起因します。 細工された MQTT SUBSCRIBE パケットは、領域外(out-of-bounds)メモリや任意メモリの読み取りにつながる可能性があります。これには、情報の漏えいや DoS 攻撃などの危険性が伴います。この脆弱性をエクスプロイトするには、細工された MQTT パケットをネットワーク経由で送信する必要があります。

TALOS-2017-0416(CVE-2017-2909):Cesanta Mongoose の DNS クエリで名前が圧縮された際に、ポインタが原因で発現する DoS の脆弱性

TALOS-2017-0416popup_icon は無限ループのプログラミング エラーに関するもので、Cesanta Mongoose 6.8 ライブラリの DNS サーバ機能に存在します。

細工された DNS 要求を受け取ると無限ループが発生し、CPU 使用率が上昇し、DoS 状態に陥る危険性があります。本脆弱性は、ネットワーク上で特定のパケットを送信することでエクスプロイトできます。

TALOS-2017-0428(CVE-2017-2921):Cesanta Mongoose で Websocket プロトコル パケット長が指定された際に、リモートでコードが実行される脆弱性

TALOS-2017-0428 popup_icon はメモリ破壊の脆弱性で、Cesanta Mongoose 6.8 の Websocket プロトコル実装方法に起因します。 細工された WebSocket パケットを受け取ると、整数オーバーフローが発生し、ヒープ バッファ オーバーフローが起きる可能性があります。これには、DoS 攻撃や任意コードのリモート実行などの危険性が伴います。この脆弱性は、細工された ebsocket パケットをネットワーク経由で送信されるとエクスプロイトされる危険性があります。

TALOS-2017-0429(CVE-2017-2922):Cesanta Mongoose で Websocket フレームが複数パケットに断片化された際に、リモートでコードが実行される脆弱性

TALOS-2017-0429  はメモリ破壊の脆弱性で、Cesanta Mongoose 6.8 の Websocket プロトコル実装方法に起因します。 細工された websocket パケットにより、古いポインタを無視してバッファが割り当てられる可能性があります。その結果として解放済みメモリ使用 (use-after-free)の脆弱性が生じ、リモートでコードが実行される危険性があります。この脆弱性は、細工された ebsocket パケットをネットワーク経由で送信されるとエクスプロイトされる危険性があります。

今回発見された脆弱性の詳細な技術情報については、Talso の Web サイトから脆弱性に関する勧告をご覧ください。

http://www.talosintelligence.com/vulnerability-reports/

詳細

IoT デバイスは処理能力やメモリ容量などが限られているため、軽量で復元力のある通信プロトコルを必要とします。IoT およびモバイル メッセージング アプリケーションで頻繁に使用されるプロトコルの 1 つに、MQ テレメトリ トランスポート(MQTT)があります。

MQTTpopup_icon は、デバイス間のメッセージング用途でパブリッシュ/サブスクライブに使用される軽量なネットワーク プロトコルであり、OASIS コンソーシアムがオープン スタンダードの採用を承認した標準プロトコルです。

MQTT はオープンで簡単に実装できるように設計されており、数千台の軽量クライアントも単一サーバでサポートできます。MQTT では接続の信頼性を確保しつつ、帯域幅要件を最小限に抑えるよう考慮されています。

Cesanta Mongoose は広く使用されている通信ライブラリで、HTTPpopup_icon、MQTT、DNSpopup_iconCoAPpopup_icon などのサーバ/クライアント アプリケーション レイヤー プロトコルをサポートする、軽量の組み込みライブラリとして実装するために設計されています。組み込みデバイス用途向けに設計されているため、ほぼすべての主要な IoT プラットフォームに対応しており、実際に多くの IoT デバイスで採用されています。

今回発見された脆弱性により、影響を受ける Cesanta Mongoose を実装したサーバが攻撃者により支配される可能性があります。これにより、個々のデバイスだけでなく、影響を受けるサーバまでもが制御される危険性があります。影響を受けるデバイスをお使いの場合は、ベンダーと協力して Cesanta Mongoose 向けのセキュリティ更新プログラムを入手し、該当するデバイスやアプリケーションすべてに適用してください。

カバレッジ

次の Snort ルールは、今回発見された脆弱性に対するエクスプロイトを検出します。脆弱性に関する新たな情報が発見された場合は、ルールが追加・変更される可能性もあります。最新情報にご注意ください。ルールに関する最新情報は、Firepower Management Center または Snort.org を参照してください。

Snort ルール:

  • 23039 – 23040

 

本稿は 2017年10月31日に Talos Grouppopup_icon のブログに投稿された「Vulnerability Spotlight: Multiple Vulnerabilities in Cesanta Mongoose Serverpopup_icon」の抄訳です。

 

コメントを書く