
تحليل شامل وإثبات المفهوم لـ CVE-2025-6218 - ثغرة اجتياز المسار في WinRAR التي تسمح بتنفيذ التعليمات البرمجية عن بُعد والتي تؤثر على الإصدارات 7.11 والإصدارات السابقة
⚠️ ثغرة حرجة - تم تأكيد الاستغلال النشط
CVE-2025-6218 هي ثغرة حرجة من نوع path traversal في WinRAR تسمح بتنفيذ تعليمات برمجية عشوائية. يتم استغلالها حالياً من قبل مجموعات APT مثل GOFFEE وBitter (APT-C-08) وGamaredon.
CVE-2025-6218 هي ثغرة حرجة من نوع path traversal في WinRAR لنظام Windows تتيح للمهاجمين تنفيذ تعليمات برمجية عشوائية.
| الجانب | التفصيل |
|---|---|
| درجة CVSS | 7.8 (عالية) |
| الإصدارات المتأثرة | WinRAR ≤ 7.11 (Windows فقط) |
| المنصات | Windows 10, 11, Server |
| المستخدمون المتأثرون | ~500 مليون |
| تم التصحيح في | WinRAR 7.12 (يونيو 2025) |
| الحالة | 🔴 استغلال نشط |
| CISA KEV | تمت الإضافة 9 ديسمبر 2025 |
يمكن للمهاجم:
لا يقوم WinRAR بالتحقق بشكل صحيح من مسارات الملفات داخل أرشيفات .rar المتخصصة. عندما يقوم المستخدم باستخراج أرشيف غير سليم، يمكن كتابة الملفات في مسارات عشوائية خارج مجلد الاستخراج المتوقع باستخدام تسلسلات path traversal (../ أو ..\\).
// Pseudocodice - WinRAR v7.11 (VULNERABILE) void extract_file(rar_entry *entry, char *dest_dir) { char final_path[MAX_PATH];
strcpy(final_path, dest_dir); // "C:\\Temp\\"
strcat(final_path, entry->filename); // + "..\\..\\..\\Windows\\System32\\malware.exe"
// ❌ ERRORE: Nessuna validazione del path traversal!
// final_path = "C:\\Temp\\..\\..\\..\\Windows\\System32\\malware.exe"
// Risolto come: "C:\\Windows\\System32\\malware.exe" ← EXPLOIT!
create_file(final_path); // File creato in directory non intesa
}
### الحمايات المفقودة في v7.11
- ❌ لا يوجد تحقق من بقاء الملف داخل `dest_dir`
- ❌ لا يوجد تصفية لتسلسلات `..` أو `.`
- ❌ لا يوجد تطبيع للمسارات
- ❌ لا توجد قائمة بيضاء بالأدلة المسموح بها
- ❌ لا يوجد التحقق من الاحتواء
### الإصلاح في v7.12```c
// WinRAR v7.12 (PATCHED)
bool is_path_contained(char *path, char *base_dir) {
char canonical[MAX_PATH], canonical_base[MAX_PATH];
// Normalizza entrambi i percorsi
GetFullPathName(path, MAX_PATH, canonical, NULL);
GetFullPathName(base_dir, MAX_PATH, canonical_base, NULL);
// Verifica contenimento
if (strncmp(canonical, canonical_base, strlen(canonical_base)) != 0) {
return false; // Path esce dalla directory base
}
return true;
}
void extract_file_safe(rar_entry *entry, char *dest_dir) {
char final_path[MAX_PATH];
strcpy(final_path, dest_dir);
strcat(final_path, entry->filename);
// ✅ FIX: Verifica che il file rimane dentro dest_dir
if (!is_path_contained(final_path, dest_dir)) {
skip_extraction(); // Rifiuta estrazione
log_error("Path traversal detected!");
return;
}
create_file(final_path); // Adesso sicuro
}
Cartella di Estrazione: C:\Temp\Extract
Path nel RAR (craft): ..\..\..\..\Users\\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\payload.bat
Risoluzione Path: C:\Temp\Extract\.. = C:\Temp\ C:\Temp\.. = C:\ C:\.. = C:\ (non può andare oltre)
= C:\Users\\AppData\Roaming\...\Startup\payload.bat ✓
### مخطط تدفق الهجوم```
┌─────────────────────────────────────────────┐
│ 1. Attaccante crea RAR con path craft │
│ es: ..\\..\\..\\Startup\\malware.bat │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 2. Distribuzione via spear-phishing │
│ Email mirata con allegato RAR │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 3. Vittima estrae archivio con WinRAR │
│ (versione ≤ 7.11) │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 4. WinRAR non valida path traversal │
│ File estratto in Startup folder │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 5. Al boot: payload eseguito │
│ RAT stabilisce C2 connection │
└─────────────────────────────────────────────┘
| الإصدار | الحالة | ملاحظات |
|---|---|---|
| ≤ 7.10 | 🔴 قابلة للاختراق | جميع عمليات الاستغلال تعمل |
| 7.11 | 🔴 قابلة للاختراق | آخر إصدار قابل للاختراق |
| 7.12 Beta 1+ | 🟢 مُصحَّحة | إصلاح اجتياز المسار |
| 7.12+ | 🟢 مُصحَّحة | إصدار مستقر مع الإصلاح |
| UNIX / Android | ✅ غير متأثرة | الإصدارات غير Windows غير متأثرة |
يمكنك التحقق من الإصدار بالذهاب إلى Impostazioni → Aggiornamenti.```powershell
(Get-Item "C:\Program Files\WinRAR\WinRAR.exe").VersionInfo.FileVersion
wmic datafile where name="C:\\Program Files\\WinRAR\\WinRAR.exe" get Version
---
## 🌍 سيناريوهات الهجوم
### السيناريو 1: Bitter/APT-C-08 Spear-Phishing (مُؤَكَّد نَشِط)
**الهدف**: الحكومة، المؤسسات العسكرية، المؤسسات الاستراتيجية```
Email Phishing:
From: [email protected]
Subject: "Provision of Information for Sectoral for AJK.rar"
Attachment: Provision_of_Information.rar
Contenuto Archive:
├── Document.docx (esca legittima - report convincente)
└── ..\\..\\..\\..\\Users\\User\\AppData\\Roaming\\Microsoft\\Office\\STARTUP\\Template.dotm
(macro malato nascosto)
Esecuzione:
1. Vittima estrae RAR
2. WinRAR non valida path → Template.dotm finisce in Office STARTUP
3. Prossimo avvio Word → Macro eseguita automaticamente
4. PowerShell downloader attivato
5. C# Trojan scaricato: WmRAT, MiyaRAT, ZxxZ
6. C2 Server: johnfashionaccess.com
7. Capabilities:
- Keylogging
- Screenshot capture
- RDP credential stealing
- File exfiltration
- Lateral movement
الهدف: منظمات حكومية روسية``` RAR specializzato: ├── run.bat (path: ..\..\..\..\Windows\Startup\run.bat) └── legitimate_document.pdf (esca)
Attack Chain:
### السيناريو 3: توصيل Ransomware```
RAR Weaponized:
└── locker.exe (path: ..\\..\\..\\Startup\\locker.exe)