
Análisis exhaustivo y prueba de concepto para CVE-2025-6218 - Vulnerabilidad de path traversal y RCE en WinRAR que afecta a las versiones 7.11 y anteriores
⚠️ VULNERABILIDAD CRÍTICA - Explotación Activa Confirmada
CVE-2025-6218 es una vulnerabilidad crítica de path traversal en WinRAR que permite la ejecución de código arbitrario. Actualmente explotada por grupos APT como GOFFEE, Bitter (APT-C-08) y Gamaredon.
CVE-2025-6218 es una vulnerabilidad CRÍTICA de path traversal en WinRAR para Windows que permite a los atacantes ejecutar código arbitrario.
| Aspecto | Detalle |
|---|---|
| CVSS Score | 7.8 (Alto) |
| Versiones Vulnerables | WinRAR ≤ 7.11 (Windows only) |
| Plataformas | Windows 10, 11, Server |
| Usuarios Afectados | ~500 millones |
| Parcheado En | WinRAR 7.12 (Junio 2025) |
| Estado | 🔴 Explotación ACTIVA |
| CISA KEV | Agregado 9 Diciembre 2025 |
Un atacante puede:
WinRAR no valida correctamente las rutas de los archivos dentro de archivos .rar especializados. Cuando un usuario extrae un archivo malformado, los archivos pueden ser escritos en rutas arbitrarias fuera de la carpeta de extracción prevista usando secuencias de path traversal (../ o ..\\).
// 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
}
### Protecciones Ausentes en v7.11
- ❌ Ningún control si el archivo permanece dentro de `dest_dir`
- ❌ Ningún filtro en secuencias `..` o `.`
- ❌ Ninguna normalización de las rutas
- ❌ Ninguna lista blanca de directorios permitidos
- ❌ Ninguna validación de contención
### La Corrección en 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 ✓
### Diagrama de flujo de ataque```
┌─────────────────────────────────────────────┐
│ 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 │
└─────────────────────────────────────────────┘
| Versión | Estado | Notas |
|---|---|---|
| ≤ 7.10 | 🔴 VULNERABLE | Todos los exploits funcionan |
| 7.11 | 🔴 VULNERABLE | Última versión vulnerable |
| 7.12 Beta 1+ | 🟢 PARCHEADA | Corrección de path traversal |
| 7.12+ | 🟢 PARCHEADA | Lanzamiento estable con corrección |
| UNIX / Android | ✅ NO AFECTADO | Versiones no Windows no afectadas |
(Get-Item "C:\Program Files\WinRAR\WinRAR.exe").VersionInfo.FileVersion
wmic datafile where name="C:\\Program Files\\WinRAR\\WinRAR.exe" get Version
---
## 🌍 Escenarios de Ataque
### Escenario 1: Bitter/APT-C-08 Spear-Phishing (CONFIRMADO ACTIVO)
**Objetivo**: Gobierno, organizaciones militares, instituciones estratégicas```
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
Objetivo: Organizaciones gubernamentales rusas``` RAR specializzato: ├── run.bat (path: ..\..\..\..\Windows\Startup\run.bat) └── legitimate_document.pdf (esca)