
CVE-2025-61155 — terminazione arbitraria dei processi in GameDriverX64.sys (anti-cheat di Tower of Fantasy). Analisi originale con IDA Pro, PoC, YARA, IOCs, mitigazione.
GameDriverX64.sysUn driver anti-cheat firmato in modalità kernel — GameDriverX64.sys, distribuito con Tower of Fantasy (Hotta Studio / Perfect World) — consente a qualsiasi utente locale non privilegiato di terminare processi arbitrari, inclusi i servizi antivirus/EDR protetti da PPL. È il tipo di primitiva a cui fanno ricorso gli operatori di ransomware, ed è attivamente sfruttata in natura dall'operazione Interlock come BYOVD EDR-killer.
Questo repository è un'analisi completa e riproducibile: l'advisory di sicurezza, un'analisi originale di reverse engineering con IDA Pro, una proof of concept e contenuti pronti all'uso per rilevamento e mitigazione.
Ricercatori: Gabriel Maciel Ramos · Anthony Sforzin · Gabriel Gomes
Proof of concept che termina un processo di destinazione tramite il driver. Il player inline non viene visualizzato? Scarica il clip.
| Driver | GameDriverX64.sys (KMDF), versioni <= 7.23.4.7 |
| Fornitore | Hotta Studio / Perfect World — nomi interni PwrdDriver / HtDriver2.0 |
| Firmatario | Fedeen Games Limited (Authenticode valido) |
| Dispositivo | \\.\HtAntiCheatDriver |
| Primitiva | IOCTL 0x222040, magic 0xFA123456 → ZwTerminateProcess nel contesto del kernel |
| Privilegi richiesti | Nessuno oltre a un utente locale standard |
| Impatto | Termina qualsiasi processo, incl. AV/EDR PPL → BYOVD EDR-killer |
| CVSS 3.1 | 5.5 Medio · AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| Stato | Pubblicata, sfruttata in natura (Interlock, Reynolds) |
1. LoadLibrary a DLL named QmGUI.dll / QmGUI4.dll / gameuirender.dll
└─ passes the filename-only "verification" in IRP_MJ_CREATE
2. CreateFile("\\.\HtAntiCheatDriver") ← default DACL, any user can open
3. DeviceIoControl(0x222040, {0xFA123456, pid}) ← only gate is a hardcoded magic
4. Driver: ZwOpenProcess(GENERIC_ALL) → ZwTerminateProcess
└─ runs with PreviousMode == KernelMode → access check skipped
└─ kills ANY process, including protected AV/EDR
Tre "guardrail", tutti aggirati: il dispositivo non ha una ACL riservata ai soli amministratori, il controllo in CREATE confronta una stringa del nome del modulo (puoi forgiarla caricando qualsiasi DLL con lo stesso nome) e il gate dell'IOCTL è una costante cablata nel binario. La terminazione viene quindi eseguita nel kernel, per cui la protezione dei processi (PPL) non si applica. Analisi completa in docs/01-technical-analysis.md.
| Percorso | Contenuti |
|---|---|
advisory.md | Advisory di sicurezza formale |
docs/01-technical-analysis.md | Analisi originale di reverse engineering con IDA Pro |
docs/02-exploitation.md | Catena di sfruttamento e walkthrough della PoC |
docs/03-detection.md | Come rilevare il driver e il suo abuso |
docs/04-mitigation.md | Blocco e rimozione tramite HVCI / WDAC |
docs/05-in-the-wild.md | Utilizzo di Interlock / BYOVD e cronologia |
poc/poc.cpp | Proof of concept minimale |
detection/cve-2025-61155.yar | Regole YARA |
detection/iocs.md | Indicatori di compromissione |
sample/SAMPLE.md | Identità e provenienza del campione (binario non incluso) |
NEWS.md | Diario degli sviluppi |
SECURITY.md | Politica di uso responsabile e contatti |
L'analisi in docs/01-technical-analysis.md è stata prodotta staticamente con IDA Pro 9.4 + Hex-Rays sul campione vulnerabile firmato legittimamente (SHA-256 9DDAE4…3C9F1E, vedi sample/SAMPLE.md). Ogni indirizzo, costante e frammento decompilato in questo repo è stato estratto direttamente dal binario e conferma in modo indipendente le segnalazioni pubbliche sullo strumento sfruttato in natura.
docs/04-mitigation.md.detection/.0x222040, terminazioni di processi originate dal kernel) — docs/03-detection.md.Solo per sicurezza difensiva, detection engineering, istruzione e ricerca. Usa la proof of concept solo su sistemi che possiedi o su cui sei autorizzato a effettuare test. Vedi SECURITY.md. Il binario del driver vulnerabile è volutamente non incluso.