Cisco Japan Blog
Share

注目の脆弱性:Tarantool で Denial of Service(DoS)状態が引き起こされる脆弱性


2017年1月5日


この脆弱性は Cisco Talos によって検出されました。

Talos は、Tarantool で Denial of Service(DoS)状態が引き起こされる 2 つの脆弱性(CVE-2016-9036 および CVE-2016-9037)を発見したことをここに発表します。Tarantoolpopup_iconは、Lua をベースとするpopup_icon オープンソースのアプリケーション サーバです。主にアプリケーション サーバとして機能しますが、データベース機能も併せ持っており、MessagePack シリアル化形式に準拠したプロトコルを使用して、メモリ内に保持されたデータベースに対してクエリを発行することができます。Mail.ru や Badoo などのさまざまなサービス プロバイダーが Tarantool を利用しています。

詳細

TALOS-2016-0254(CVE-2016-9036)Tarantool に実装された Msgpuck ライブラリの mp_check 関数によって Denial of Service(DoS)状態が引き起こされる脆弱性popup_icon

MessagePackpopup_icon 形式でシリアル化されたデータのエンコードおよびデコードには、Msgpuck ライブラリが使用されます。このライブラリは、元々、Tarantool アプリケーション サーバのシリアル化/逆シリアル化のためのデフォルト ライブラリとして実装されていましたが、他の C、C++ アプリケーションで MessagePack 形式のデータを扱う場合にも、独立したライブラリとしてサポートを提供します。

MessagePack 形式でエンコードされたデータを逆シリアル化する際、Msgpuck ライブラリの「mp_check」という関数が使用されます。これは、MessagePack 形式のデータを、デコードする前に検証します。ここで、特別に細工されたパケットを使用すると、map16 パケットのデコードによりバッファ外を読みに行くかどうかをチェックする際、「mp_check」に成功のステータスを不正に返させることができ、これにより、Denial of Service(DoS)状態が引き起こされます。

TALOS-2016-0255(CVE-2016-9037)Tarantool のキー タイプに関連して Denial of Service(DoS)状態が発生する脆弱性popup_icon

Tarantool のプロトコルは MessagePack のシリアル化形式に準拠しています。このプロトコルは、サーバに対して行われる特定の要求タイプのエンコードに使用されます。このプロトコルのヘッダー内には、マップ タイプとしてエンコードされたデータが格納され、各キーは整数で表されます。これらの整数は、指定されたキー タイプの決定に使用するインデックスとして使用されます。特別に細工されたパケットを送信すると、「xrow_header_decode」関数に、メモリの領域外の場所にアクセスさせることができます。これにより、サーバ上で Denial of Service(DoS)状態が発生します。

検証済みバージョン

Tarantool 1.7.2-0-g8e92715
Msgpuck 1.0.3

カバレッジ

この悪意ある試行は、以下の Snort ルールにより検出可能です。今後、脆弱性に関する新たな情報が追加されるまでの間は、ルールが追加されたり、現行のルールが変更されたりする場合がありますのでご注意ください。最新のルールの詳細については、FireSIGHT Management Center または Snort.org を参照してください。

Snort ルール:41080 ~ 41082

 

本稿は 2016年12月20日に Talos Grouppopup_icon のブログに投稿された「Vulnerabiity Spotlight: Tarantool Denial of Service Vulnerabilitiespopup_icon」の抄訳です。

 

Tags:
コメントを書く