inMusic Brands のソフトウェア Engine DJ には、メディアライブラリファイルをネットワーク上の接続クライアントに送信するための組み込み HTTP サーバーが含まれています。メディアファイルはファイルシステムパスによって参照されます。Engine DJ はクライアントを認証したり、要求されたファイルシステムパスを制限したりしません。これにより、攻撃者は影響を受けるシステムから機密性の高いローカルファイルやネットワークアクセス可能なファイルを外部に持ち出すことができます。
攻撃者に必要なのは影響を受けるホストへのネットワークアクセスだけであり、認証や事前の操作は必要ありません。
2025年11月17日にリリースされた Engine DJ v4.3.4 には緩和策が含まれています。ユーザーはできるだけ早くアップグレードすることを推奨します。
CVSS v3.1 基本スコア: 7.5 (高)
ベクター: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Engine DJ >=3.0.0、<4.3.4、すべてのプラットフォーム (macOS、Windows) が対象。
具体的にテストされ、脆弱性が確認されたバージョン (macOS および Windows):
3.0.0、3.0.1、3.1.0、3.1.1、3.2.0、3.3.0、3.4.0、
4.0.0、4.0.1、4.1.0、4.2.0、4.2.1、4.3.0
具体的にテストされ、脆弱性が確認されなかったバージョン (macOS および Windows):
2.0.0、2.0.1、2.0.2、2.1.0、2.2.0、2.2.1、2.2.2、2.3.0、2.3.1、2.3.2、2.4.0、
4.3.4
Engine DJ が起動すると、ポート :50020 をすべての IPv4 ネットワークインターフェース (localhost を除く) でバインドします。
クライアントは、別の gRPC サービス (ポート :50010) を使用してアクセスを要求し、メディアファイルを検索することが想定されています。目的のメディアファイルパスが見つかると、クライアントはポート :50020 に HTTP 要求を送り返します。
GET /download/%3CC%3A%2FMusic%2Ftest.flac%3E HTTP/1.1
Host: 192.0.2.1:50020
User-Agent: EngineOS/1.0 DenonDJ
Accept: */*
HTTP/1.1 200 OK
Content-Length: 37517194
Content-Type: application/octet-stream
Keep-Alive: timeout=5, max=5
…
注: 上記の GET パスをデコードすると、単に次のようになります。
/download/<C:/Music/test.flac>
要求を行う際、これらの文字をパーセントエンコードする必要はありません。
攻撃者は、Engine DJ ソフトウェアが実行されているユーザーがアクセスできる任意のファイルを、パスが既知であれば要求できます。この例では、テスト用にテキストファイルを使用しています。
GET /download/<C:/Users/USERNAME/test.txt> HTTP/1.1
Host: 192.0.2.1:50020
HTTP/1.1 200 OK
Content-Length: 40
Content-Type: application/octet-stream
Keep-Alive: timeout=5, max=5
INSECURE...
From text file test.txt
概念実証ラボテストでアクセスされたファイルには、秘密の SSH キーや環境ファイルが含まれていました。
要求可能なパスはローカルファイルに限定されません。ネットワークパスも、ホストの権限に応じてアクセス可能であることが確認されました。
/download/<//EXAMPLE-SERVER/C$/secret.txt>
幸いなことに、サーバーからの応答には Access-Control-Allow-Origin ヘッダーや関連ヘッダーは含まれていません。したがって、通常の Web ベースのクライアントからファイルにアクセスすることはできません。一部のブラウザ拡張機能やフラグを使用してクロスオリジン要求制限を緩和することは可能ですが、一般的ではありません。
ポート :50020 での IPv4 ネットワークトラフィックは Engine DJ が使用中であることを推測するために使用できますが、ホストが脆弱であるかどうかを示すものではありません。組み込みサーバーは応答内で自身を識別せず、脆弱なバージョンと脆弱でないバージョンの Engine DJ の間に測定可能な違いはないようです。したがって、存在することがわかっているファイルを要求しようと試みる以外に、外部からホストが脆弱であるかどうかを判断することは不可能と思われます。
発見後すぐに、inMusic Brands はテクニカルサポートチャネルを通じて脆弱性を通知されました。対応は専門的かつ迅速で、macOS と Windows の両方で 2025年11月17日にリリースされた v4.3.4 の一部として緩和策がリリースされました。
認証/認可なしでもメディアファイルのダウンロードは可能ですが、要求可能なパスがホワイトリスト化され、メディアライブラリ外のファイルへのアクセス試行は不可能になりました。ユーザーは、ホワイトリストにないものに対しては、存在しなくても 403 応答を受け取ります。
GET /download/<C:/Users/USERNAME/test.txt> HTTP/1.1
Host: 192.0.2.1:50020
HTTP/1.1 403 Forbidden
Content-Length: 17
Content-Type: text/html
Keep-Alive: timeout=5, max=5
…
最新の Engine DJ リリースの公式ダウンロードは、Engine DJ 公式ウェブサイトで入手できます。
このレポートに関する質問は、作成者までご連絡ください。
Brad Isbell, AudioPump, Inc. [email protected]